请求Web服务的发布请求返回HTTP状态405-不允许的方法



我做了一个具有三个路径参数的帖子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/与之相符。除非服务器端点中的装饰器也对此进行预处理,否则这可能是您的错误。

相关内容

  • 没有找到相关文章

最新更新