【问题标题】:Jersey: WAR not receiving POST泽西岛:WAR 没有收到 POST
【发布时间】:2014-02-20 15:25:39
【问题描述】:

我有以下 Servlet:

// Sets the path to base URL + /servlet
@Path("/servlet") 
public class Servlet 
{ 

// This method is called if TEXT_PLAIN is request 
@POST 
@Produces(MediaType.TEXT_HTML) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public void storeData(@FormParam("data1") String data1, 
        @FormParam("data2") String data2, 
        @Context HttpServletResponse servletResponse) throws IOException 
{
 //Does stuff here
}
} 

我有以下客户:

//Create HTTP Client
DefaultHttpClient httpclient = new DefaultHttpClient();

// Use SSL
httpclient = sslClient(httpclient);

// Prepare the post statement
HttpPost httppost = new HttpPost(url);

// Add auth header with utility account information
httppost.addHeader("Authorization", "Basic " + Base64.encodeToString(("username" + ":"
            + "password").getBytes(), Base64.NO_WRAP));

postParameters.add(new BasicNameValuePair("data1", data1));
postParameters.add(new BasicNameValuePair("data2", data2));

httppost.setEntity(new UrlEncodedFormEntity(postParameters));

// Execute the post request
HttpResponse response = httpclient.execute(httppost);

PHP 中的服务器测试代码 - 获取“Key”的字符串值并将该值输出到文件

$content =$_POST['data1'];
$file = "newtext.txt";
$Saved_File = fopen($file, 'w');
fwrite($Saved_File, $content);
fclose($Saved_File);

PHP 测试脚本有效。它接收到帖子,我可以在服务器上的文本文件中查看 data1。然而,Servlet @POST 方法似乎没有被调用。

有什么办法可以调试吗?有人对如何使它起作用有任何想法吗?我不确定是否应该使用@FormParam 或@QueryParam 或@HeaderParam。 @POST 方法是如何被调用的?

【问题讨论】:

    标签: java rest servlets http-post jersey-1.0


    【解决方案1】:

    使用 Firefox 的 postman 插件进行测试和调试。效果很好。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      相关资源
      最近更新 更多