當嘗試使用HttpURLConnection
後的數據連接到http://ws.audioscrobbler.com/2.0/,我得到(隨機)EOFException類和FileNotFoundException異常的HttpURLConnection類的getInputStream()
EOFException
對我的Nexus 4
或
FileNotFoundException: http://ws.audioscrobbler.com/2.0/
運行Android 4.2 0.2。
有人可以幫忙嗎?
編輯
我升級到4.3:同樣的問題。
public InputStream getData(String url_str, List<NameValuePair> postData) {
Map<String, Object> response = new HashMap<String, Object>();
InputStream is = null;
HttpURLConnection conn = null;
try {
URL url = new URL(url_str);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(CONNECTION_TIMEOUT);
conn.setConnectTimeout(READ_TIMEOUT);
conn.setRequestMethod("POST");
conn.setDoInput(true);
if(postData != null){
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(postData));
writer.close();
os.close();
}
// Starts the query
conn.connect();
// Get and return response
is = conn.getInputStream();
return is;
} catch (IOException e) {
// ...
} finally {
if(conn != null){
conn.disconnect();
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
StringBuilder result = new StringBuilder();
boolean first = true;
for (NameValuePair pair : params)
{
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
}
return result.toString();
}
你有什麼做http連接? – Wishy
帶POST數據的http請求! – jul