Json ayrıştırma işlemini POSTMAN API'sı üzerinde yaptığımız POSTMAN API'sı üzerinden yapıyorum ve POSTMAN'a POSTMAN'a giriş detaylarını deniyorum: - kullanıcı adı ve şifre ve eğer detaylar doğru POSTMAN, yanıtı JSON STRING içinde geri döndürecek. Bunu çalıştırdığımda, arkada herhangi bir veri elde edemiyorum. Bu beni beklenmedik bir yanıt kodu 400.406.404Voleybol kütüphanesinde beklenmedik cevap kodu ve json dizesini alamadı
MainActivity.java
package com.dropouts.copylogin;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private EditText email;
private EditText password;
private Button login_register;
private RequestQueue requestQueue;
private StringRequest request;
private TextView tv;
private static String URL="http://192.168.1.18/rakyesh/test/rest/rest/login";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
email= (EditText) findViewById(R.id.user);
password=(EditText)findViewById(R.id.pass);
login_register=(Button)findViewById(R.id.loginbtn);
requestQueue= Volley.newRequestQueue(this);
login_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
request = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
Log.e("Response of 192 returns username",">"+jsonObject.getString("username"));
if (jsonObject.names().get(0).equals("username")) {
Toast.makeText(getApplicationContext(), "SUCCESS"+ jsonObject.getString("username"),Toast.LENGTH_LONG).show();
startActivity(new Intent(getApplicationContext(), Welcome.class));
} else {
Toast.makeText(getApplicationContext(), "Error" + jsonObject.getString("error"), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("Content-Type","application/json; charset=utf-8");
hashMap.put("email", email.getText().toString());
hashMap.put("password", password.getText().toString());
return hashMap;
}
};
requestQueue.add(request);
}
});
}
}
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dropouts.copylogin">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Welcome"/>
</application>
</manifest>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
tools:context="com.dropouts.copylogin.MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/user"
android:hint="username"
android:inputType="text"
android:maxLines="1"
android:singleLine="true"
android:layout_marginTop="50dp" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:maxLines="1"
android:singleLine="true"
android:id="@+id/pass"
android:hint="Pass"
android:layout_marginTop="42dp"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="LOGIN/REGISTER"
android:id="@+id/loginbtn"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txt"
android:textAppearance="?android:textAppearanceLarge"
android:layout_below="@+id/loginbtn"
/></LinearLayout>
WELCOME.JAVA
gösterenSen başlığındaki Content-Type
olarak application/json
geçiyordu ve bunu yerine JsonObjectRequest
kullanmak daha iyidir json
verileri göndermek istediğiniz data.If dize geçiyoruz
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome"
android:id="@+id/wlcmtxt"
android:textAppearance="?android:textAppearanceLarge"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Logout"
android:id="@+id/log_out"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
... i söyledi kod eklendi –