2017-12-07 10 views
0

私はAndroidアプリケーションで作業しています。アプリケーションはGETリクエストを使用してサーバーに接続しています。 サーバに接続するために書いたコードは、多くのデバイスで完全に動作しています。 LENOVO YOGA TAB3で良い返答をしていないのですが、JSONの代わりにHtmlというタグを返します。APIのURLに問題があると思っていましたが、ブラウザでURLを確認しました。 URLは正しいです。リクエストを取得するHttpUrlConnection - 不正な応答

APIのURL多くのAndroid携帯に

[http://www.xyz.in/xyzapi/?building=on&address=Assotech Sandal Suites, Sector 135, Noida, Uttar Pradesh 201304, India&bill_amount=12500&type=R&fullstatename=Uttar Pradesh&lat=28.496171099999998&lng=77.4027049&state=UP&country=IN&district=Gautam Buddha Nagar&sublocality=Sector 135&calc-sess=59d4beba305f3&netmetering=1][1] 

応答::レノボヨガTAB3上

{"lifetimesaving":"25.0 Lacs","proposed_pv_capacity":10,"billWithSolar":3872,"bill_amount":"12500","sanction":10,"project_cost":"6.0 Lacs","return_oninevstment":"20.8","roi_image":"solar_score6_6.png","treeadded":"346 ","treeofftheroad":"9 "} 

応答:ここ

は、APIのURLとその回答です

<head/><style>.personal-details h2{font-size:34px}.netmetering-tgle{position:absolute;left:0;right:0;bottom:5px;width:211px}.netmetering-tgle .wnm{float:left;position:relative;padding:0 10px 0 0;min-width:130px;text-align:center}.netmetering-tgle .wnm a{color:#c97511;background:none}#radioBtn .btn{border:1px solid transparent;border-radius:0!important;font-family:"Din-Bold"}#radioBtn .notActive{color:#c97511;background-color:#e0e1e2;padding:2px 0;width:38px;background-size:100% 100%;border-color:transparent;font-family:"Din-Bold";border-radius:5px}#radioBtn .active{color:#fff;background-color:#addc6f;border-color:transparent;padding:2px 5px;width:38px;cursor:auto;pointer-events:none;border-radius:5px;box-shadow:inset 0 0 10px rgba(0,0,0,.8)}#radioBtn .notActive[data- 

したがって、レスポンスはで、ヨガのTab3ではが間違っています。ここで

は、私がサーバーに接続するために使用していますコードです:

public static String connectToServerUsingGETMethod(String API_COMPLETE_URL){ 

    URL url; 
    HttpURLConnection urlConnection = null; 
    try { 
     url = new URL(API_COMPLETE_URL); 

     urlConnection = (HttpURLConnection) url.openConnection(); 
     InputStream in = urlConnection.getInputStream(); 

     InputStreamReader isr = new InputStreamReader(in); 

     String line = ""; 
     BufferedReader reader = new BufferedReader(isr); 
     StringBuilder sb = new StringBuilder(); 
     while ((line = reader.readLine()) != null) { 
      sb.append(line); 
     } 
     //get the string version of the response data 
     return sb.toString(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     if (urlConnection != null) { 
      urlConnection.disconnect(); 
     } 
    } 

    return ""; 
} 

それはあまりにもヨガのタブ3上で動作することができるように、私はこのコードで何かを追加することができたら私を提案します。

答えて

0

返された応答がJSONであることを確認するために静的なコンテンツタイプを設定する必要があると思います。同様に、以下のようになります。

HttpURLConnection urlConnection = null; 
urlConnection = (HttpURLConnection) url.openConnection(); 
urlConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); 

希望します。

+0

これを試してみたところ、同じ反応がありました。 –

+0

'Content-Type:application/json'の代わりに' Accept:application/json'に変更してください。それはあなたのために働くことができますか? –

+0

これは取得要求であるため、Accept、Accept forはPOST要求を設定できません。 –

関連する問題