2017-01-09 3 views
1

Из моего небольшого знания 500 ошибок я понимаю, что это ошибка сервера. Но что может быть основной причиной чего-то подобного? Это может быть на моем конце?HttpURLConnection «Произошла непредвиденная ошибка».

Ошибка я получаю это:

{"status":500,"error":"An unexpected error occurred."} 

Может иметь дело с моими заголовками т.е. отсутствует один? Из того, что я обнаружил при тестировании, ошибка изменяется от 400 ошибок, т. Е. 401 после добавления заголовка пользовательского агента.

мой код выглядит следующим образом:

String url="https://api.gotinder.com/auth"; 
    URL object=new URL(url); 
    HttpURLConnection con = (HttpURLConnection) object.openConnection(); 

    con.setDoOutput(true); 
    con.setDoInput(true); 

    con.setRequestMethod("POST"); 
    con.setRequestProperty("Content-Type", "application/json"); 
    con.setRequestProperty("Host", "host url"); 
    //con.setRequestProperty("content-Length" , "287"); 
    con.setRequestProperty("User-Agent" , "Tinder/4.0.4"); 
    con.setRequestProperty("facebook_token", "token"); 
    //con.setRequestProperty("facebook_id", "id"); 

    System.out.println(con.getResponseCode()); 

Side Примечание: Это все для образовательных целей. Я заинтриговал.

+0

Не могли бы вы поделиться URL? Поскольку URL-адрес неверен, 'String url =" url ";' –

+0

'Может это иметь отношение к моим заголовкам': я так не думаю, поскольку я выполнил тот же код с действительным URL-адресом и получил код ОК 200. – vvtx

+0

I подумайте, что вам не хватает некоторых заголовков, таких как Authorization Basic. Попробуйте побить его, используя какой-то клиент для отдыха – Barath

ответ

1

Проблема была в том, что я передавал свой токен как Свойство, а не часть тела.

код:

String urlstr = "https://api.gotinder.com/auth"; 
    String params = "facebook_token=" + this.fb_token; 
    URL url = new URL(urlstr); 
    HttpURLConnection urlconn = (HttpURLConnection) url.openConnection(); 
    urlconn.setDoInput(true); 
    urlconn.setDoOutput(true); 
    urlconn.setRequestMethod("POST"); 
    urlconn.setRequestProperty("User-Agent", "Tinder/3.0.4 (iPhone; iOS 7.1; Scale/2.00)"); 
    urlconn.setRequestProperty("Content-Language", "en-US"); 
    OutputStream os = urlconn.getOutputStream(); 
    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); 
    writer.write(params); 
    writer.close(); 
    os.close(); 

    if (urlconn.getResponseCode() == 200) { 
     BufferedReader bR = new BufferedReader(new InputStreamReader(urlconn.getInputStream())); 
     String line = ""; 

     StringBuilder responseStrBuilder = new StringBuilder(); 
     while ((line = bR.readLine()) != null) { 
      responseStrBuilder.append(line); 
     } 
     urlconn.getInputStream().close(); 

     JSONObject result = new JSONObject(responseStrBuilder.toString()); 
     user_token = result.getString("token"); 
     System.out.println("User token is: " + user_token); 

    } else { 
     System.out.println("Want to print error here had getting data..."); 
    }