2015-09-28 5 views
0

У меня есть ниже Android кода, это дает ошибку 400:Android HttpURLConnection дает 400 ошибку

url = new URL(requestURL); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
conn.setReadTimeout(15000); 
conn.setConnectTimeout(15000); 
conn.setRequestMethod("GET"); 
conn.setDoInput(true); 
conn.setDoOutput(true); 

MySQLiteHelper db = new MySQLiteHelper(this); 
String token = db.getLoginToken(); 
conn.setRequestProperty("Authorization", "Bearer " + token); 

OutputStream os = conn.getOutputStream(); 

os.close(); 
int responseCode=conn.getResponseCode(); 

Этот код дает мне код ответа 400. Я пытаюсь дублировать наш код приложений для iOS, который составляет:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    NSString *authorization = [NSString stringWithFormat:@"Bearer %@",token]; 
    [request setValue:authorization forHTTPHeaderField:@"Authorization"]; 
    [request setURL:[NSURL URLWithString:professionalConnections]]; 
    [request setHTTPMethod:@"GET"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

    NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

И работает без проблем.

Почему код Android вызывает ошибку 400?

+0

Проблема находится в данных, которые вы отправляете в этом случае URL. См.: [10 Определений кодов состояния] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html): 10.4.1 400 Плохой запрос Запрос не может быть понят сервером из-за неправильной формы синтаксис. – zaph

+1

@ Lorenzo отредактировал, почему код android с ошибкой 400, или как я могу его отладить дальше? –

ответ

0

Вы должны поместить Content-Type заголовка

conn.setRequestProperty("Content-type", "application/x-www-form-urlencoded"); 
+0

все еще дает 400, есть ли способ, которым я могу увидеть HTTP-запрос до его отправки, чтобы проверить, соответствует ли он версии iOS –

+0

Вы уверены, что значение токена верно? –

Смежные вопросы