我有一个从PHP读取Json的代码,它可以工作,但它只从PHP读取一个JSON,我需要从android发送一些数据到php,然后读取它获取请求的数据。
有人可以帮助我将这些内容包含在该代码中吗?
PHP / JSON阅读工作代码: 我需要在那里实现发送,但我不知道从哪里开始
package com.json.php;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import android.text.Html;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.json.php.R;
public class JSONExampleActivity extends Activity {
Button send;
EditText txsms;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chatxml);
TextView textView = (TextView) findViewById(R.id.textView1);
EditText txsms = (EditText) findViewById(R.id.txsms);
send= (Button) findViewById(R.id.send);
send.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
TextView textView = (TextView) findViewById(R.id.textView1);
EditText txsms = (EditText) findViewById(R.id.txsms);
String a=txsms.getText().toString();
textView.setText("mezu:"+a);
xsend("luis", a,"opinion");
new GetSmsTask().execute("http://iatek.eu/sys/getsms.php");
}});
textView.setMovementMethod(new ScrollingMovementMethod());
new GetSmsTask().execute("http://iatek.eu/sys/getsms.php");
}
private class GetSmsTask extends AsyncTask<String, Void, JSONObject> {
protected JSONObject doInBackground(String... urls) {
JSONObject obj = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(urls[0]);
HttpResponse response = httpclient.execute(httppost);
/* String jsonResult = "{\"posts\":" + //FOR TESTS
"[{\"cid\":\"11\",\"username\":\"Livi\",\"sms\":\"ag\",\"fto\":\"\",\"fcat\":\"cat\"}," +
" {\"cid\":\"11\",\"username\":\"Livi\",\"sms\":\"ag\",\"fto\":\"\",\"fcat\":\"cat\"}, " +
"{\"cid\":\"11\",\"username\":\"Livi\",\"sms\":\"ag\",\"fto\":\"\",\"fcat\":\"cat\"}," +
"{\"cid\":\"11\",\"username\":\"Livi\",\"sms\":\"ag\",\"fto\":\"\",\"fcat\":\"cat\"}]}";
*/
String jsonResult = inputStreamToString(response.getEntity().getContent()).toString();
obj = new JSONObject(jsonResult);
}
catch (JSONException e) {
e.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return obj;
}
private StringBuilder inputStreamToString(InputStream is) {
String rLine = "";
StringBuilder answer = new StringBuilder();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
try {
while ((rLine = rd.readLine()) != null) {
answer.append(rLine);
}
}
catch (IOException e) {
e.printStackTrace();
}
return answer;
}
protected void onPostExecute(JSONObject obj) {
JSONArray jsonArray;
String dana = null;
try {
jsonArray = obj.getJSONArray("posts");
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject childJSONObject = jsonArray.getJSONObject(i);
String username = childJSONObject.getString("username");
String sms = childJSONObject.getString("sms");
String fcat = childJSONObject.getString("fcat");
dana=dana+ " "+ ""+username+":" + sms +Html.fromHtml("<br />");
TextView textView = (TextView) findViewById(R.id.textView1);
textView.setText(""+dana);
textView.scrollTo(0, textView.getLineHeight()*(textView.getLineCount()-11));
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
答案 0 :(得分:1)
HttpClient httpclient = new DefaultHttpClient();
String jsonString = "Some json string";
HttpPost httppost = new HttpPost(urls[0]);
httppost.setEntity(new StringEntity(jsonString, HTTP.UTF_8));
答案 1 :(得分:0)
尝试在http请求中使用参数:
new GetSmsTask().execute("http://iatek.eu/sys/getsms.php"+"?"+arg1+"="+val1);
答案 2 :(得分:0)
您可以通过发帖请求或获取请求将数据发送到服务器。 检查此示例以将后期数据发送到服务器。
希望它能帮助哥们。 :)