gpt4 book ai didi

java - Android JSON通讯

转载 作者:行者123 更新时间:2023-12-02 06:39:28 25 4
gpt4 key购买 nike

我想从我的 Android 设备在 PHP 服务器上执行此查询:

{
"command": "REGISTER",
"data": {
"email": "EMAIL",
"login": "LOGIN",
"password": "PASSWORD",
"language": "USER_LANGUAGE"
}
public class AysnchronousTaskPost extends AsyncTask<String, Long, String> {
private static final String PATH = "http://alphabravo.com/myapp/api.php";

@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub

InputStream mInputStream;
String lineString = "";
String resultString = "";
StringBuilder mStringBuilder = null;

List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();


nameValuePairList.add(new BasicNameValuePair("command","register"));
nameValuePairList.add(new BasicNameValuePair("email","abc@gmail.com"));
nameValuePairList.add(new BasicNameValuePair("login", "abc"));
nameValuePairList.add(new BasicNameValuePair("password", "1205"));
nameValuePairList.add(new BasicNameValuePair("language", "en"));

try {
HttpClient mHttpClient = new DefaultHttpClient();
HttpPost mHttpPost = new HttpPost(PATH);
mHttpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList));

HttpResponse mHttpResponse = mHttpClient.execute(mHttpPost);
HttpEntity mHttpEntity = mHttpResponse.getEntity();

StatusLine mStatusLine = mHttpResponse.getStatusLine();

int statusCodeString = mStatusLine.getStatusCode();

if (statusCodeString == 200) {

mInputStream = mHttpEntity.getContent();

mStringBuilder = new StringBuilder();

BufferedReader mBufferedReader = new BufferedReader(
new InputStreamReader(mInputStream, "iso-8859-1"), 8);

while ((lineString = mBufferedReader.readLine()) != null)
mStringBuilder.append(lineString + "/n");

}

resultString = mStringBuilder.toString();

} catch (Exception e) {
// TODO: handle exception
}
return resultString;
}

@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}

@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}

我得到一个空的BufferedReader.ReadLine()。我是否正确创建了 mHttpPost ?我也尝试过 HTTPget 方法。但结果是一样的。请帮助我

我已经在浏览器上检查了我的 php 脚本。我的 PHP 脚本工作正常。

最佳答案

您需要将键值对转换为内容类型application/json,然后将其发送到您的服务器。

在 asynctask 中尝试一下,

JSONObject data = new JSONObject();

// Add key/value pairs
data.put("email", email);
data.put("login", login);
data.put("password", password);
data.put("language", language);

JSONObject json = new JSONObject();
json.put("command", command);
json.put("data", data);

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPostRequest = new HttpPost("http://alphabravo.com/myapp/api.php");

StringEntity se;
se = new StringEntity(json.toString());

// Set HTTP parameters
httpPostRequest.setEntity(se);
httpPostRequest.setHeader("Accept", "application/json");
httpPostRequest.setHeader("Content-type", "application/json");


HttpResponse response = (HttpResponse) httpclient.execute(httpPostRequest);

HttpEntity entity = response.getEntity();

String receiveJson = EntityUtils.toString(entity);

//use receiveJson as new JSONObject(receiveJson) ot new JSONArray(receiveJson) as per your returned json value

关于java - Android JSON通讯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19287308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com