0

first SkyScanner Document say

Response Details

A successful response contains no content. The URL to poll the booking details is specified in the Location header of the response.

and

How to retrieve Session key from Skyscanner API post request - Ruby this link say response successful -> Location header return "sessionKey"

My Problem is response successful but Location header return null...

I use Okhttp lib and

Here is my code

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 "";
    }
}

And My log

10-20 20:01:00.698 22202-22408/com.example.park.myapplication V/Response: code : 200

10-20 20:01:00.698 22202-22408/com.example.park.myapplication V/Response: message : OK

10-20 20:01:00.698 22202-22408/com.example.park.myapplication V/Response: location : null

What should I do? please find my Session Key...

Community
  • 1
  • 1
Park
  • 5
  • 4

1 Answers1

0

change lib Okhttp -> HttpurlConnection...

try { url = new URL(u); 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();
Park
  • 5
  • 4