為什么response.body().string()的值用equals與字符串對(duì)比總是返回false?
private void sentRequestWithOkHttpToLogin() {
? ?new Thread(new Runnable() {
? ? ? ?@Override
? ? ? ?public void run() {
? ? ? ? ? ?try {
? ? ? ? ? ?OkHttpClient client=new OkHttpClient();
? ? ? ? ? ?RequestBody requestBody=new FormBody.Builder()
? ? ? ? ? ? ? ? ? ?.add("username",username)
? ? ? ? ? ? ? ? ? ?.add("password",password)
? ? ? ? ? ? ? ? ? ?.build();
? ? ? ? ? ?Request request=new Request.Builder()
? ? ? ? ? ? ? ? ? ?.url(Login_url)
? ? ? ? ? ? ? ? ? ?.post(requestBody)
? ? ? ? ? ? ? ? ? ?.build();
? ? ? ? ? ?Response response= client.newCall(request).execute();
? ? ? ? ? ? ? ? responseData=response.body().string();
? ? ? ? ? ? ?runOnUiThread(new Runnable() {
? ? ? ? ? ? ? ? ?@Override
? ? ? ? ? ? ? ? ?public void run() {
? ? ? ? ? ? ? ? ? ? ?if(responseData.equals("success"))
? ? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ? ?Log.d("user12",responseData);
? ? ? ? ? ? ? ? ? ? ? ? ?Toast.makeText(LoginActivity.this,"登錄成功",Toast.LENGTH_SHORT).show();
? ? ? ? ? ? ? ? ? ? ? ? ?UserFragment.login.setText(username);
? ? ? ? ? ? ? ? ? ? ?}else if(responseData.equals("fail"))
? ? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ? ?Log.d("user12",responseData);
? ? ? ? ? ? ? ? ? ? ? ? ?Toast.makeText(LoginActivity.this,"用戶名密碼不存在",Toast.LENGTH_SHORT).show();
? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ?});
? ? ? ? ? ?} catch (IOException e) {
? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ?}
? ? ? ?}
? ?}).start();
}
2018-06-12
返回值最后多了換行符,用string.replaceAll("\r|\n","");試試
2017-11-26
這個(gè)決定于responseData所返回的值吧,還有最好確認(rèn)下responseData是不是定義為string類型的。
你這個(gè)請(qǐng)求只會(huì)返回“success”或者“fail”這一個(gè)字段嗎?