[英]HTTP request error Android
我正在構建一個要在其中發出HTTP request
的Android
應用。 但它顯示錯誤:
Please make sure the Content-Type or Accept of Request Header or Request Parameters is correct!The Request should be like android
但是,如果我通過普通的Java
程序使用相同的代碼,則它可以正常工作。
這是我的代碼:
public static void getJSONFromUrl(String urlStr) {
try {
System.setProperty("http.keepAlive", "false");
URL url = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setUseCaches(false);
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setConnectTimeout(10000);
connection.connect();
System.out.println("Connection :"+connection.getResponseCode());
String rawObjects = readZipStream(connection.getInputStream());
} catch (Exception exception) {
exception.printStackTrace();
}
}
private static String readZipStream(InputStream is) throws IOException,
ParseException {
StringBuilder rawObjects = new StringBuilder();
InputStream zis = new BufferedInputStream(is);
BufferedReader br = new BufferedReader(new InputStreamReader(zis));
try {
String readedLine;
while ((readedLine = br.readLine()) != null) {
System.out.println("readedLine :"+readedLine);
if (readedLine != null && readedLine.trim().length() > 0) {
rawObjects.append(readedLine);
}
}
} catch (IOException e) {
throw new IOException(e.getMessage());
} finally {
close(br);
close(zis);
}
return rawObjects.toString();
}
private static void close(InputStream inputStream) {
try {
if (inputStream != null) {
inputStream.close();
}
} catch (Exception exception) {
}
}
private static void close(Reader reader) {
try {
if (reader != null) {
reader.close();
}
} catch (Exception exception) {
}
}
Log o / p:
03-17 21:54:19.021: D/Response:(14409): > Service response code: 404
03-17 21:54:19.021: D/Response:(14409): Service response: Please make sure the Content-Type or Accept of Request Header or Request Parameters is correct!The Request should be like:
03-17 21:54:19.021: D/Response:(14409): ===============Request Method[GET]================
03-17 21:54:19.021: D/Response:(14409): Parameters:
03-17 21:54:19.021: D/Response:(14409): search query Required[false]
03-17 21:54:19.021: D/Response:(14409): upcsearch query Required[false]
03-17 21:54:19.021: D/Response:(14409): pageno query Required[false]
03-17 21:54:19.021: D/Response:(14409): pagesize query Required[false]
03-17 21:54:19.021: D/Response:(14409): Headers:
03-17 21:54:19.021: D/Response:(14409): Accept:application/xml, application/json
03-17 21:54:19.021: D/Response:(14409): Service status:
有人能幫我嗎?
嘗試這個
DefaultHttpClient httpClient = new DefaultHttpClient();
URI uri = new URI(youruri);
HttpGet httpGet = new HttpGet(uri);
HttpResponse response = httpClient.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = response.getEntity();
ByteArrayOutputStream out = new ByteArrayOutputStream();
entity.writeTo(out);
out.flush();
out.close();
String jsonFile = out.toString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.