Method.GETを使用してPHPサーバーから正常にデータを取得するPostActivity.javaファイルがありますが、メソッドの代わりにMethod.POSTを使用するにはGSONのメソッドを変更する必要があります私は以下のように、サーバーへの2つのパラメータ(動作やユーザー(PID)を)送ることができるように.get:POSTメソッドを使用するAndroid GSON
{
"operation":"listApps",
"user":{
"pid":"1"
}
}
PostActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
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.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PostActivity extends Activity {
private static final String ENDPOINT = "http://www.locahost.com/api";
private RequestQueue requestQueue;
private Gson gson;
private List<String> posts_strs ;
private List<Post> posts ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post);
requestQueue = Volley.newRequestQueue(getApplicationContext());
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("M/d/yy hh:mm a");
gson = gsonBuilder.create();
posts_strs = new ArrayList<String>();
fetchPosts();
}
private void fetchPosts() {
StringRequest request = new StringRequest(Request.Method.GET, ENDPOINT, onPostsLoaded, onPostsError);
requestQueue.add(request);
}
private final Response.Listener<String> onPostsLoaded = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
posts = Arrays.asList(gson.fromJson(response, Post[].class));
ListView listview = (ListView) findViewById(R.id.postListView);
for (Post post : posts) {
posts_strs.add(post.ID + ": " + post.title);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(PostActivity.this,R.layout.single_post_item,R.id.textView, posts_strs);
listview.setAdapter(adapter);
}
};
private final Response.ErrorListener onPostsError = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(PostActivity.class.getSimpleName(), error.toString());
}
};
}