我做了一个具有三个路径参数的帖子Web服务。
但是,当我尝试通过URL请求此Web服务时,我获得HTTP状态405-方法不允许
但是,如果我将Web服务更改为@get
,则相同的方法也可以。@POST
@Path("/authCode/{code}/{token}/{secret}")
public Response getToken(@PathParam("code") String code,@PathParam("token") String token,@PathParam("secret") String secret) {
String output = code;
System.out.println("code output"+output);
System.out.println("********A basic user profile call into a subresource return data in JSON********"); //$NON-NLS-1$
String url = "http://api.linkedin.com/v1/people/~/summary";
请求URL:
http://localhost:8080/SocialNetwork/rest/linkedin/authCode/17842/81--sdfsdf-8a57-adfd-9ddb-dfdddfdf/sdfsdfsd-fb54-402d-9a85-dsfdsfsdf
这是我得到的响应
<html>
<head>
<title>Apache Tomcat/7.0.78 - Error report</title>
<style>
<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}-->
</style>
</head>
<body>
<h1>HTTP Status 405 - Method Not Allowed</h1>
<HR size="1" noshade="noshade">
<p>
<b>type</b> Status report
</p>
<p>
<b>message</b>
<u>Method Not Allowed</u>
</p>
<p>
<b>description</b>
<u>The specified HTTP method is not allowed for the requested resource.</u>
</p>
<HR size="1" noshade="noshade">
<h3>Apache Tomcat/7.0.78</h3>
</body>
任何帮助都会感激不已!
这是因为服务器不允许POST
方法。仅允许GET
方法。 405方法不允许表示此。
要获取POST
请求工作,您需要在服务器上HTTP请求的标题中启用POST
请求方法。您通常可以通过添加此调用的端点来执行此操作。
例如,您的代码可能看起来像GET
请求:
router.GET('/some-endpoint', someGETHandlerFunc)
要启用POST
相同的端点,您将添加:
router.POST('/some-endpoint', somePOSTHandlerFunc)
在一起:
router.GET('/some-endpoint', someGETHandlerFunc)
router.POST('/some-endpoint', somePOSTHandlerFunc)
现在到您的问题...
您的请求端点与POST
端点不匹配。
您问题中指示的POST
端点是:
/authCode/{code}/{token}/{secret}
您提供的请求URL与之不匹配,因为它已将/SocialNetwork/rest/linkedin/
与之相符。除非服务器端点中的装饰器也对此进行预处理,否则这可能是您的错误。