私はアンドロイドアプリをASP.NET APIに接続しようとしています。 Android 400エラーASP.NET APIの改訂
私はポストマンに投稿
( http://localhost:3863/api/account/login X-WWW-形式でエンコードされた)、私が手にHTTP 200:{
"success": true,
"username": "mathijs.cop"
}
私はhttp://10.0.2.2:3863/api/account/loginでAndroid内部からしようとしたとき、私は取得(IPが変更されていることに注意してください我々は)アンドロイドエミュレータ内部から呼び出しているので:
namespace MVC.Controllers.API
{
public class AccountController : ApiController
{
/// <summary>
/// Inloggen van een gebruiker.
/// </summary>
/// <param name="aanmeldViewModel"></param>
/// <returns></returns>
[System.Web.Http.HttpPost]
public IHttpActionResult Login(AanmeldViewModel aanmeldViewModel)
{
if (WebSecurity.Login(aanmeldViewModel.Username, aanmeldViewModel.Password, true))
{
return Ok(new { success = true, username = aanmeldViewModel.Username });
}
return Ok(new { success = false, message = "De opgegeven gebruikersnaam of wachtwoord is niet geldig!" });
}
}
}
:
05-02 12:57:14.098 25405-26563/be.kdg.integratieproject D/Retrofit: ---> HTTP POST http://10.0.2.2:3863/api/account/login
05-02 12:57:14.098 25405-26563/be.kdg.integratieproject D/Retrofit: Content-Type: application/x-www-form-urlencoded; charset=UTF-8
05-02 12:57:14.098 25405-26563/be.kdg.integratieproject D/Retrofit: Content-Length: 35
05-02 12:57:14.098 25405-26563/be.kdg.integratieproject D/Retrofit: username=mathijs.cop&password=admin
05-02 12:57:14.098 25405-26563/be.kdg.integratieproject D/Retrofit: ---> END HTTP (35-byte body)
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: <--- HTTP 400 http://10.0.2.2:3863/api/account/login (6ms)
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: Content-Type: text/html; charset=us-ascii
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: Server: Microsoft-HTTPAPI/2.0
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: Date: Mon, 02 May 2016 12:57:22 GMT
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: Connection: close
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: Content-Length: 334
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: OkHttp-Selected-Protocol: http/1.1
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: OkHttp-Sent-Millis: 1462193834103
05-02 12:57:14.105 25405-26563/be.kdg.integratieproject D/Retrofit: OkHttp-Received-Millis: 1462193834105
05-02 12:57:14.106 25405-26563/be.kdg.integratieproject D/Retrofit: <--- END HTTP (334-byte body)
05-02 12:57:14.108 25405-25405/be.kdg.integratieproject E/LOGIN: UNSUCCESSFUL
は、ここに私のAPIコントローラの
LoginActivity:
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
username = usernameText.getText().toString();
password = passwordText.getText().toString();
//logt de gebruiker in met username en paswoord
login();
}
});
private void login(){
getService().login(username,password,this);
}
@Override
public void success(Login login, Response response) {
Log.e("LOGIN","SUCCESS");
Log.e("loginboolean", Boolean.toString(login.isSuccess()));
Log.e("Loginnaam", login.getUsername()+"");
loggedIn = login.isSuccess();
System.out.println(loggedIn);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
sharedPreferences.edit().putBoolean("authorized",loggedIn).apply();
if(login.isSuccess() == false){
passwordText.setTextColor(getResources().getColor(R.color.red));
passwordText.setHintTextColor(getResources().getColor(R.color.red));
passwordText.clearFocus();
usernameText.clearFocus();
}else{
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
intent.putExtra("loggedIn",loggedIn);
startActivity(intent);
}
}
@Override
public void failure(RetrofitError error) {
Log.e("LOGIN","UNSUCCESSFUL");
Toast.makeText(this,"U moet een username en password worden ingegeven!", Toast.LENGTH_LONG).show();
}
コールバックサービスインタフェース:
@FormUrlEncoded
@POST("/account/login")
void login(@Field("username") String username, @Field("password") String password, Callback<Login> callback);
なぜ郵便配達の仕事を行いますが、私のアプリケーションにはありませんか?
パラメータとして渡すものはありますか? –
username = mathijs.cop&password = admin – Sytham