我在android
中使用以下代码List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("results", data));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpResponse= httpClient.execute(httpPost);
httpEntity = httpResponse.getEntity();
我在我的应用程序中使用以下代码从webservice接收数据。
@POST
@Path("/saveResponseData/")
@Produces(MediaType.APPLICATION_JSON)
public String saveSurveyResponseData(@QueryParam("results") String responseData)
{
...................
}
但是我在这里得到responseData
为null。如何在服务器端获取该数据。
提前致谢...
答案 0 :(得分:0)
尝试像这样编码。 您应该首先检查错误的响应。
if(httpResponse!=null)
{
int statusCode=httpResponse.getStatusLine().getStatusCode();
if(statusCode>=200&&statusCode<=300)
{
//ok response
// fecth the data from
HttpEntity entity= httpResponse.getEntity();
if(entity!=null)
{
// fetch data from
String responseBody;
try {
responseBody = EntityUtils.toString(entity);
System.out.println("finalResult"+responseBody.toString());
//parse your data here
} catch (org.apache.http.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else
{
// printing the response from server/ what error code occor
Log.e("Response from server", httpResponse.getStatusLine().getReasonPhrase());
}
}
祝你好运:)
答案 1 :(得分:0)
在使用@POST
时,请尝试使用@FormParam
注释而不是@QueryParam
。
@POST
@Path("/saveResponseData/")
@Produces(MediaType.APPLICATION_JSON)
public String saveSurveyResponseData(@FormParam("results") String responseData)
{
...................
}
希望它有所帮助。
答案 2 :(得分:0)
如果您在服务器端通过POST收到请求,请尝试使用@Consumes(“application / x-www-form-urlencoded”)而不使用@QueryParam(“results”),如下所示:
@POST
@Path("/saveResponseData/")
@Consumes("application/x-www-form-urlencoded")
public String saveSurveyResponseData(String responseData)
{
...................
}
您的respondeData应该类似于“results = data”,将其视为字符串。
希望这能回答你的问题。