2017-01-05 4 views
0

私は、認証のためにC#でウェブAPIを作成しました。郵便番号を使ってパラメータを送信し、トークンを正しく返します。テストのためにポストの最後にパラメータを残します。 WebアプリケーションのAPIからJSONのパラメータを取得するためのサンプルをたくさん検索しました。私はコード400を送り返します。リクエストが間違っています。私はJavaからユーザーとサーバーのパスワードを使用して接続する必要があります。多くのコードを使用しても何も、これは私が郵便配達を使用して生成するために管理したトークンですしかし、Javaからのみ400悪い要求を生成するために管理。java/androidからweb api/aspトークンを取得する

私はこれは私が接続

のために使用している最後の方法でしょうAndroidアプリ

{ 
 
    "access_token": "vqWD9rZA2y8ydDxs8uT2L8pWQwjaMURaAcvuytdtq58zCzJS4OcbDJRw8lJQc7YbJ272cmzyhyPA7Ws_2dVH8ywmtwQRscVhZl-AgoLY61vZUDLJ6McJL7L_3zDrO-X5XfAV1DVBgkX8yPWwgVRSfhl17qG5zjuV8duVUBN8j7OvdU_FsTXePfBsamGMaBxzO6_oZjoJ1qPBAoy1AzfXhD4Dvm5Kwk_pJtL9MvfxSNkYKz0WSDNY1C0sm0-O3ml0A-1dr6F-jIiXxSyu90Jb2HHvS16L7mF6vPvvE3tElLV3a509XHRm2LbDTZOdGEHFrNl", 
 
    "token_type": "bearer", 
 
    "expires_in": 86399 
 
}

url token: http://pedidostf.azurewebsites.net/token 
username : admin 
password : admin 
grant_type : password 

でそれを使用して認証しようとしている

private class POST extends AsyncTask<String, Void, String> { 

    @Override 
    protected String doInBackground(String... params) { 

     //  InputStream inputStream = null; 
     String cliente = params[0]; 
     String clave = params[1]; 
     String json = ""; 
     try { 

      OkHttpClient client = new OkHttpClient(); 
      Request.Builder builder = new Request.Builder(); 
      builder.url(AppConfig.URL_TOKEN); 
      builder.addHeader("Content-Type", "application/x-www-form-urlencoded"); 
      builder.addHeader("Accept", "application/json"); 

      FormBody.Builder parameters = new FormBody.Builder(); 
      parameters.add("grant_type", "password"); 
      parameters.add("username", cliente); 
      parameters.add("password", clave); 
      builder.post(parameters.build()); 

      Response response = client.newCall(builder.build()).execute(); 
      if (response.isSuccessful()) { 
       json = response.body().string(); 
       System.out.println("CONTENIDO:: " + json); 

      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
      System.out.println("Error: " + e); 
     } 



    return json; 
} 

私はここにいる

Get OAuth Token from Web API to android

+0

は、POSTリクエストを行うためにOkHttp使用方法を次の例に従い? - ヘッダとボディのパラメータを単に設定することができます – Saeid

+0

私はこれに対して良いボレーコードを見つけられません:/ @Saeid – Heisenberg06

答えて

1

あなたはPOSTリクエストの代わりにGETリクエストを行っているようです。 GETリクエストを使用して郵便番号をスニペットで実行すると、同じエラーが返されるので、それが問題です。ネットワークのためのバレーボールライブラリを使用しない理由

How to add parameters to api (http post) using okhttp library in Android

関連する問題