我正在尝试在android.c中实现分页。我有一个返回jsonarray的服务。
protected JSONArray doInBackground(String... params) {
JSONArray jsonArray = null;
String result = ServerConnect.readService("http://myservice.com/resbook_redberry/mobile/GetKitchenOrder");
try {
jsonArray = new JSONArray(result);
} catch (Exception e) {
e.printStackTrace();
try {
jsonArray = new JSONArray(result.substring(3));
} catch (JSONException e1) {
e1.printStackTrace();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return jsonArray;
}
但现在我需要将网页号发送到网络服务并获得JSONArray
作为回复。
我是否需要撰写HTTP帖子?我应该改变什么才能实现这一目标?
答案 0 :(得分:3)
Try this: here i am using gson library to parse json : https://code.google.com/p/google-gson/downloads/detail?name=google-gson-2.2.4-release.zip&can=1&q=
**With GET Method**
protected SignUpResponseJson doInBackground(String... params) {
urlString = "http://www.xxxxx.com?page=1"
url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setUseCaches(false);
connection.setConnectTimeout(Integer.parseInt(context.getResources().getString(R.string.timeout))); //set timeout to 5 seconds
connection.setReadTimeout(Integer.parseInt(context.getResources().getString(R.string.timeout))); //set timeout to 5 seconds
connection.connect();
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
// Log.i("test-responsecode",String.valueOf(responseCode));
if (responseCode == HttpURLConnection.HTTP_OK) {
// Log.i("test","inside if");
InputStream in = httpConnection.getInputStream();
Gson gson = new Gson();
Reader r = new InputStreamReader(in);
Type DataType = new TypeToken<SignUpResponseJson>() {
}.getType();
signUpResponseJsons = gson.fromJson(r,DataType);
Log.i(TAG, gson.toJson(signUpResponseJsons).toString());
}
}
或使用后置方法
public void postData(){
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yourdomain.com/post.php");
try {
// Add your data
List nameValuePairs = new ArrayList(1);
nameValuePairs.add(new BasicNameValuePair("data1", "dataValue"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
InputStream is = response.getEntity().getContent();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
}