我在这里难过 . 自从Android 1.5以来,我一直在使用相同的HttpUrlConnection代码从我的服务器中检索JSON . 突然,用2.3它将无法工作,我无法理解为什么 .
这是我的代码:
try {
HttpURLConnection conn =
(HttpURLConnection)(new URL(Constants.SERVER_URL + path)).openConnection();
conn.setAllowUserInteraction(false); // no user interact [like pop up]
conn.setDoOutput(true); // want to send
conn.setDoInput(true);
conn.setRequestMethod( "POST" );
conn.setRequestProperty( "Content-type", "application/x-www-form-urlencoded" );
conn.setRequestProperty( "Accept", "application/json,text/html,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" );
conn.setRequestProperty( "Accept-Charset", "UTF-8" );
conn.setRequestProperty("Connection", "Keep-Alive");
DataOutputStream pw = new DataOutputStream (conn.getOutputStream());
pw.writeBytes(requestString);
pw.flush();
pw.close();
if (conn.getResponseCode() == 200) {
InputStream in = new BufferedInputStream(conn.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
StringBuffer stringBuffer = new StringBuffer();
while(br.ready()){
stringBuffer.append(br.readLine());
}
br.close();
in.close();
return stringBuffer.toString();
} else {
return badResponse;
}
} catch (Exception ioe) {
return ERROR_MAKING_CONNECTION;
}
响应返回时代码为200,但是,当我运行conn.getInputStream() . available()时,结果为-1 . 在除了2.3之外的每个其他android api上,conn.getInputStream() . available()返回一个重要的响应 .
有任何想法吗?