【发布时间】:2014-12-18 20:45:45
【问题描述】:
我需要能够在 android 中获取将由 php 代码生成的 http 标头代码。
我对 android 很陌生,无法掌握正确的方法。
目前我在我的 signup.java 文件中的代码能够将一些数据发布到基于 php 的 web 服务,并根据发送的 web 服务回显一个 json 编码响应的数据。
发生错误时响应的php代码是
$response["error"] = true;
$response["message"] = "Username Already taken";
echoRespnse(400,$response);
成功的代码是
$response["error"] = false;
$response["message"] = "Successfuly Registered";
echoRespnse(201,$response);
这将生成一个 json 编码的响应消息。
我的 signup.java 文件有以下代码
public void post() throws UnsupportedEncodingException
{
// Get user defined values
uname = username.getText().toString();
email = mail.getText().toString();
password = pass.getText().toString();
confirmpass = cpass.getText().toString();
phone = phn.getText().toString();
HttpClient httpclient = new DefaultHttpClient();
HttpResponse httpResponse = null;
HttpPost httppost = new HttpPost("http://www.rgbpallete.in/led/api/signup");
if (password.equals(confirmpass)) {
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("uname", uname));
nameValuePairs.add(new BasicNameValuePair("pass", password));
nameValuePairs.add(new BasicNameValuePair("email", email));
nameValuePairs.add(new BasicNameValuePair("phone", phone));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpResponse = httpclient.execute(httppost); //http header response??
//Code to check if user was successfully created
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
Toast.makeText(getBaseContext(), "Password mismatch", Toast.LENGTH_SHORT).show();
//Reset password fields
pass.setText("");
cpass.setText("");
}
}
我想知道httpResponse 是否会保存由 web 服务生成的 http 标头响应代码,或者我是否需要解析 json 响应消息以了解 web 服务返回的内容。
【问题讨论】:
-
不是真的,我在这里有 2 个问题,一个是否使用 http 标头是正确的方法,以及 2 个是否
httpResponse = httpclient.execute(httppost)将保存 http 标头代码。不想知道如何获得http header -
不清楚你在问什么。您要检索什么标头,目的是什么?您将收到的实际格式取决于您的 php.ini 中
echoRespnse的实现。http header code我假设你的意思是状态码? -
(附带说明,一旦您测试了状态码为 201,请尝试
Strin message = new JSONObject(EntityUtils.toString(httpResponse.getEntity())).getString("message");。)
标签: java android json web-services