2017-11-08 11 views
0

応答コード= 400私はアンドロイドアプリを実行しますが、私のブラウザとポストマンで同じURLをテストすると、レスポンスコードは200です。何が間違っていますか。これは取得リクエストメソッドですレスポンスコード400 OKHTTP

public static String getRequest(String myUrl) throws IOException { 

     InputStream is = null; 

     try { 

      URL url = new URL(myUrl); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setReadTimeout(30000 /*milliseconds*/); 
      conn.setConnectTimeout(20000 /*milliseconds*/); 
      conn.setRequestMethod("GET"); 

      conn.setDoInput(true); 
      // Starts the query 
      conn.connect(); 
      int response = conn.getResponseCode(); 
      if (response != HttpURLConnection.HTTP_OK) 
       is = conn.getErrorStream(); 
      else 
      is = conn.getInputStream(); 

      Log.i(TAG, String.valueOf(response)); 


      // Convert the InputStream into a string 
      return readStream(is); 

      // Makes sure that the InputStream is closed after the app is 
      // finished using it. 
     } finally { 
      if (is != null) { 
       is.close(); 
      } 
     } 
    } 

私は助けが必要です。

+0

ローカルサービスを使用していますか? –

+0

いいえ、オンラインサーバーを使用しています – chidinma

+0

エラー400その悪質な要求、あなたの値を確認してください –

答えて

0

あなたが呼び出す必要はありません:GET要求のための

conn.setRequestMethod("GET"); 
conn.setDoInput(true) 

。私は質問のためのODataフィルタを使用しているため、実際のデバイスデバイスは私が手動でURLをエンコードしなければならなかったURLをエンコードすることができないので、私は問題を見つけました(承認)

+0

彼は400を取得していますが、不正なリクエストではありません401. –

+0

GET任意のURLが、私はエラー400を与えるoDataフィルタクエリを使用してGETをしようとすると。これは私にエラー400 "http://housenaija.azurewebsites.net/api/PropertyListings?$filter=Price ge" + minPrice + "とPrice le" + maxPriceを与えるURLです:私はminPriceとmaxPriceの値を提供します。 – chidinma

0

これは私が前にで渡していたものだった。

String url = *Const.HOUSE_URL+"PropertyListings?$filter=Price ge "+ minPrice+" and Price le "+maxPrice* 

が、エンコードされたとき:String url = *Const.HOUSE_URL+"PropertyListings?$filter="+ **query** + minPrice+ **query1** + maxPrice;*

String query = URLEncoder.encode("Price ge ", "utf-8"); 

String query1 = URLEncoder.encode(" and Price le ","utf-8"); 

その後、私のHTTP GETリクエストに渡され、最終的なURLが:

String url = Const.HOUSE_URL+"PropertyListings?$filter="+ query + minPrice+ query1 + maxPrice; 

ここで、minPriceとmaxPriceはEditTextのString値です。

希望すると、これが役立ちます。

関連する問題