当前位置: 首页 > 知识库问答 >
问题:

Android客户端连接到泽西岛Rest - 邮政给405

郎魁
2023-03-14

我正在编写一个连接到我自己的泽西Rest客户端的Android应用程序。HTTP get命令工作正常,但我在POST上遇到问题,我试图向服务器发送一些东西。我收到一个405退回,所以服务器似乎无法将请求与资源方法匹配起来。有什么想法吗?下面的测试代码…

Rest服务器

@PUT
@Consumes(MultiPartMediaTypes.MULTIPART_MIXED)
public Response putResponse(MultiPart multiPart) {
    System.out.println(multiPart.getBodyParts());
    return null;
}

ANDROID客户端

HttpClient httpclient = new DefaultHttpClient();
HttpPost request = new HttpPost(URL + "responses");
request.addHeader("Content-Type", "multipart/mixed");

MultipartEntity entity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("Testpart1", new StringBody("<testxml></testxml>"));
entity.addPart("image1", new StringBody("imagedata1"));
request.setEntity(entity);
request.addHeader("deviceId", deviceId);
ResponseHandler<String> handler = new BasicResponseHandler();
try {
    String result = httpclient.execute(request, handler);
    Log.i("tag", result);
return result;
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    httpclient.getConnectionManager().shutdown();
}
return null;

TCPMon流量显示以下POST /Maintenance_Server/rest/responsesHTTP/1.1 Content-Type:multipart/混合deviceId: xxxxx Content-Llong: 244主机:127.0.0.1:12345连接:保持活跃用户代理:Apache-HttpClient/UNAVAILABLE(java 1.4)

--jju2JFDOlzJ4LQo7YkrJYLuwDUHmB5b7
Content-Disposition: form-data; name="Testpart1"

<testxml></testxml>
--jju2JFDOlzJ4LQo7YkrJYLuwDUHmB5b7
Content-Disposition: form-data; name="image1"

imagedata1
--jju2JFDOlzJ4LQo7YkrJYLuwDUHmB5b7--

谢啦

马克

共有1个答案

吴品
2023-03-14

您正在发送HTTP POST,但在服务器端,您只声明了HTTP PUT的处理程序。因此,它无法将POST与任何方法匹配,因此405。将资源方法的注释从@PUT更改为@POST,或者由客户端发送HTTP PUT而不是POST。

 类似资料:
  • 问题内容: 我正在尝试使用Jersey客户端模拟对我的Web服务的HTTP请求。我尝试实现文档中的简单示例。这是我的短代码: 我什至没有实现整个示例,因为当前我在最后一行收到一个异常: 我只将此依赖项添加到我的: 我试图用谷歌搜索问题,以及调试应用程序,但我真的看不出问题出在哪里。 编辑 所有Maven依赖项: 问题答案: 这看起来像与JAX-RS API版本(包含MultiValuedMap)有

  • 我正在请求put操作,在执行请求后,我将重定向到GET服务URL。在这里,我面临着405 HTTP错误代码的问题。然而,在POST操作的情况下,同样的代码也适用于我。 下面的代码是endpoint: 客户: } 请告诉我如何解决这个问题。

  • 我不知道为什么我不能为注册用户发布数据,我需要一些其他的东西,比如解析或者....请帮助我,谢谢

  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 问题内容: 我是球衣/ JAX-RS实施的新手。请在下面找到我的泽西岛客户代码以下载文件: 我的服务器端代码是: 在我的客户代码中,我收到200 OK的响应,但是我无法将文件保存在硬盘上。在下面的行中,我提到了需要保存文件的路径和位置。不知道这里出了什么问题,将不胜感激。谢谢!! 问题答案: 我不知道是否让Jersey让您简单地回应一个文件,就像这里一样: 你 可以 肯定使用StreamingOu

  • 我想执行我们的服务器支持的 PATCH 请求,以便使用 Jersey 客户端进行测试。我的代码如下,有人可以让我知道下面的代码有什么问题吗? 这是完全的例外,