2016-10-20 5 views
0

最初スカイスキャナードキュメントはSkyScanner SessionKeyはどこですか?

レスポンス詳細

正常な応答が全く内容が含まれていないと言います。予約詳細をポーリングするURLは、応答のロケーションヘッダーで指定します。私はを使用

...私の問題は、応答成功したが、Locationヘッダリターンヌル

"SESSIONKEYを"> Locationヘッダーのリターン -

How to retrieve Session key from Skyscanner API post request - Ruby このリンクは、応答の成功を言いますOkhttp libと

ここは私のコードです

public String post(String url, String json) throws IOException { 
    try { 
     RequestBody body = RequestBody.create(JSON, json); 

     Request request = new Request 
       .Builder() 
       .url(url) 
       .post(body) 
       .addHeader("Content-Type", "application/x-www-form-urlencode") 
       .addHeader("Accept", "application/json") 
       .build(); 

     Response response = client.newCall(request).execute(); 


     Log.v("Response", "code : " + response.code()); 
     Log.v("Response", "message : " + response.message()); 
     Log.v("Response", "location : " + response.header("location")); 
     return response.body().string(); 
    } catch (Exception e) { 
     return ""; 
    } 
} 

そして、私のログ

10-20 20:01:00.698 22202から22408/com.example.park.myapplication V /応答:コード:200

10-20 20:01:00.698 22202-22408/com.example.park.myapplication V /レスポンス:メッセージ:OK

10-20 20:01:00.698 22202から22408/com.example.park.myapplication がV /応答:場所:ヌル

私は何をすべき? ;> HttpURLConnectionの...

試し{ URLは=新しいURL(U) - 私のセッションキー...

答えて

0

変更のlib Okhttp見つけてください HttpURLConnection connection =(HttpURLConnection)url.openConnection();

 connection.setRequestMethod("POST"); 
     connection.setConnectTimeout(500 * 1000); 
     connection.setReadTimeout(500 * 1000); 
     connection.setRequestProperty("Cache-Control", "no-cache"); 
     connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
     connection.setRequestProperty("Accept", "application/xml"); 
     connection.setDoOutput(true); 
     connection.setDoInput(true); 


     String Parameters = "apiKey=" + apiKey + 
       "&country=UK" + 
       "&currency=GBP" + 
       "&locale=en-GB" + 
       "&originplace=EDI" + 
       "&destinationplace=LHR" + 
       "&outbounddate=2016-11-01" + 
       "&intbounddate=2016-11-08" + 
       "&locationschema=Iata" + 
       "&adults=1"; 
     //Parameter 컨텐트 길이 넘겨주는 부분 
     byte[] postData = Parameters.getBytes(StandardCharsets.UTF_8); 
     int postDataLength = postData.length; 
     connection.setRequestProperty("Content-Length", Integer.toString(postDataLength)); 
     OutputStream os = connection.getOutputStream(); 
     os.write(postData); 
     os.flush(); 



     int responseCode = connection.getResponseCode(); 
関連する問題