JSON响应错误代码201,但在Android HTTP POST中应该是200
因为我试图发布评级活动的结果。从用户那里读取评级值后,我通过HTTPPOST调用webservice并在其中设置JSON对象。由于我的Web服务器需要身份验证,我也能够验证这一点 但真正的问题是,响应代码应该是200,但iam接收到201。请告诉我哪里出了问题 代码:JSON响应错误代码201,但在Android HTTP POST中应该是200,android,json,http-post,Android,Json,Http Post,因为我试图发布评级活动的结果。从用户那里读取评级值后,我通过HTTPPOST调用webservice并在其中设置JSON对象。由于我的Web服务器需要身份验证,我也能够验证这一点 但真正的问题是,响应代码应该是200,但iam接收到201。请告诉我哪里出了问题 代码: 201是表示“已创建”的正常响应代码。您的Web服务正在报告它的成功,这是正常的。HTTP规范定义了这段代码。请看是的,非常感谢!但根据我的web服务规格,我必须收到200个。让我知道我是否从Android客户端做了所有正确的事情
201是表示“已创建”的正常响应代码。您的Web服务正在报告它的成功,这是正常的。HTTP规范定义了这段代码。请看是的,非常感谢!但根据我的web服务规格,我必须收到200个。让我知道我是否从Android客户端做了所有正确的事情?作为Stackoverflow的规则,我接受你的答案;-)。但只需要最后确认上述问题!正如我所看到的,一切都很好。如果唯一的问题是响应代码,我认为您应该将
If
语句更改为也检查201代码您的Web服务是如何创建的?它的后端是什么?“我的web服务规范”是什么意思?你能展示一下吗?Web服务是REST和JAVA。这是服务器期望的格式:粗体请求头POST/XXXXXXXX相册/rest/v1.0/pictures/12345678内容类型:应用程序/json请求体{“评级”:3}响应头状态代码:200 ok
public static String sendJson(final int rating, final String url) {
Thread t = new Thread() {
public void run() {
Looper.prepare(); // For Preparing Message Pool for the child
HttpResponse response;
// proxy
final String PROXY = "xxx.xxx.xxx.xxx";
// proxy host
final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080);
HttpParams httpParameters = new BasicHttpParams();
mHttpClient = new DefaultHttpClient(httpParameters);
HttpConnectionParams.setConnectionTimeout(mHttpClient.getParams(),
10000); //Timeout Limit
mHttpClient.getParams().setParameter(
ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);
System.out.println("Sending proxy request: " + mHttpClient);
// mHttpClient = new DefaultHttpClient();
JSONObject json = new JSONObject();
try {
String reqUrl = new String(aBaseUrl + url);
HttpPost post = new HttpPost(reqUrl);
post.getParams().setParameter(
ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);
post.addHeader(BasicScheme
.authenticate(new UsernamePasswordCredentials(
userName, password), "UTF-8", false));
System.out.println("Sending Post proxy request: " + post);
json.put("rating", rating);
// json.put("password", pwd);
// StringEntity se = new StringEntity( "JSON: " +json.toString());
StringEntity se = new StringEntity(json.toString());
System.out.println("JSON VALUE 2222 " + json.toString());
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
// post.setEntity(new
// ByteArrayEntity(json.toString().getBytes("UTF8")));
post.setEntity(se);
response = mHttpClient.execute(post);
/* Checking response */
statusCode = response.getStatusLine().getStatusCode();
System.out.println("Http Execute finish " + statusCode);
if(statusCode==200)
{
HttpEntity entity = response.getEntity();
String getResponseText = EntityUtils.toString(entity);
System.out.println(" Post Response Text from Server : "
+ getResponseText);
}
if (response != null) {
// InputStream in = response.getEntity().getContent();
// //Get the data in the entity
// HttpEntity entity = response.getEntity();
// String getResponseText =
// EntityUtils.toString(entity);
// System.out.println(" Post Response Text from Server : "
// + getResponseText);
}
} catch (Exception e) {
e.printStackTrace();
// createDialog("Error", "Cannot Estabilish Connection");
}
Looper.loop(); // Loop in the message queue
}
};
t.start();
return url;
}