【发布时间】:2016-12-10 08:32:26
【问题描述】:
我正在尝试通过 Java 自动化 REST API。为此,我正在使用 Jersy jar。 我用谷歌搜索了足够多的代码,并且能够编写一个不会引发任何异常的代码。但是,当我尝试到达项目的端点并发布请求时,我总是收到 405 - Method not allowed 错误响应。相同的端点在 Soap UI 上返回成功响应。并且不需要标题。媒体类型为 JSON。
基本上,我只是想做 SOAP UI 操作,但是通过 Eclipse。 PS:我是新手,不胜感激。
package sample;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status.Family;
import org.glassfish.jersey.client.JerseyInvocation.Builder;
public class Sample
{
public static void main(String a[])
{
Client client = ClientBuilder.newClient();
WebTarget resource = client.target("https://endpoint-url/Resource");
Form form = new Form();
form.param("name", "bond");
form.param("ID", "007");
Builder request = (Builder) resource.request();
request.accept(MediaType.APPLICATION_JSON);
Response response = request.get();
if (response.getStatusInfo().getFamily() == Family.SUCCESSFUL)
{
System.out.println("Success! " + response.getStatus());
System.out.println(response.readEntity(String.class));
}
else
{
System.out.println("ERROR! " + response.getStatus());
// System.out.println(response);
System.out.println(response.readEntity(String.class));
}
}
}
【问题讨论】:
-
这是我得到的输出。状态 - 405 方法不允许。
-
请分享服务代码
-
服务代码?你的意思是服务器端的那个?如果是这样,我认为我无法访问它:(
-
简单:服务器不允许
GET请求endpoint-url/Resource -
实体将是 JSON 正文。
标签: java rest soap jersey httprequest