0

好的..这很奇怪。我正在尝试在android中发出http请求。它可以工作,我可以使用 StringWriter“构建”一个字符串,但代码在 writer.toString() 处引发异常。如果我使用 StringBuilder 或 StringWriter 没有区别。

try {
    HttpResponse response = httpClient.execute(httpPost);
    InputStream is = response.getEntity().getContent();
    StringBuilder writer = new StringBuilder();
    //StringWriter writer = new StringWriter();
    int ch;
    while(( ch = is.read()) != -1) { 
        writer.append((char)ch);
    }
    String theString = writer.toString();
    return theString;
} 
catch (Exception e) {
    return e.getMessage();
}

有任何想法吗?

4

1 回答 1

1

问题是您的 HTTP 线程正在尝试使用HTTPResponseaTextView或其他此类 UI 元素更新 UI 线程,因此CalledFromWrongThreadException正在引发 a。

使用一种Handler或其他此类机制重定向到 UI 线程以进行 UI 更新将解决您的问题。

于 2013-03-26T22:29:29.950 回答