2015-12-30 3 views
1

Я не могу понять запрос ниже для СкручиваниеКак сделать такой же запрос cURL в андроид java?

curl -X POST -u "client_id:secret" \ 
    https://bitbucket.org/site/oauth2/access_token -d grant_type=password \ 
    -d username={username} -d password={password} 

Как я могу сделать такой же запрос в Java (Android)? Теперь я стараюсь так:

String auth = vcs.getKey() + ":" + vcs.getSecret(); 
byte[] authEncBytes = Base64.encode(auth.getBytes(), Base64.DEFAULT); 
String authStringEnc = new String(authEncBytes); 
URL url = new URL("https://bitbucket.org/site/oauth2/access_token"); 
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); 
connection.setRequestProperty("Authorization", "Basic " + authStringEnc); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("grant_type", "password"); 
connection.setRequestProperty("username", mLogin); 
connection.setRequestProperty("password", mPassword); 

Но это не работает.

ответ

1

Вы передаете параметры сообщения с заголовком запроса. Снимите последние три и замените их ниже:

String params = "grant_type=password&username=xyz&password="+ java.net.URLEncoder.encode("urp&^!ass", "UTF-8"); 
OutputStream os = connection.getOutputStream(); 
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); 
writer.write(params); 
writer.flush(); 
writer.close(); 
os.close(); 
int responseCode = connection.getResponseCode(); 
+0

Благодарим за помощь! Я попробую! –

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