簡體   English   中英

HTTP請求錯誤Android

[英]HTTP request error Android

我正在構建一個要在其中發出HTTP requestAndroid應用。 但它顯示錯誤:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM