2017-06-03 1 views
0

Ich habe einen POST-Webdienst mit drei Pfadparametern erstellt.Anforderung an eine Postanforderung des Webdienstes gibt HTTP-Status 405 zurück - Methode nicht zulässig

Aber wenn ich versuche, dieses Web-Service-URL zu beantragen, i erhalten HTTP-Status 405 - Methode nicht

erlaubt

Aber die gleiche Methode funktioniert, wenn ich den Web-Service ändern

@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"; 
@GET

Anforderungs-URL:

http://localhost:8080/SocialNetwork/rest/linkedin/authCode/17842/81--sdfsdf-8a57-adfd-9ddb-dfdddfdf/sdfsdfsd-fb54-402d-9a85-dsfdsfsdf 

Dies ist die Antwort i

erhalten
<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> 

Jede Hilfe wird dankbar sein !!

Antwort

0

Dies liegt daran, dass der Server keine POST Methoden zulässt. Nur GET Methoden sind erlaubt. 405 Methode nicht zulässig zeigt dies an.

Um die POST Anfrage zu erhalten, müssen Sie eine POST Anfrage-Methode in den Headern der HTTP-Anfrage auf dem Server aktivieren. Sie können dies normalerweise einfach tun, indem Sie einen Endpunkt für einen solchen Anruf hinzufügen.

Zum Beispiel der Code wie folgt für die GET Anfrage aussehen:

router.GET('/some-endpoint', someGETHandlerFunc) 

Um den gleichen Endpunkt für POST zu ermöglichen, würden Sie hinzufügen:

router.POST('/some-endpoint', somePOSTHandlerFunc) 

zusammen:

router.GET('/some-endpoint', someGETHandlerFunc) 
router.POST('/some-endpoint', somePOSTHandlerFunc) 

Nun zu Ihrer Frage ...

Ihre Anfrage Endpunkt nicht mit dem POST Endpunkt.

Der POST Endpunkt wie in Ihrer Frage angegeben ist:

/authCode/{code}/{token}/{secret} 

Ihre Anfrage von Ihnen angegebene URL nicht, dass übereinstimmt, wie es /SocialNetwork/rest/linkedin/ zu ihm hat vorangestellt. Sofern Ihr Decorator im Server-Endpunkt dies ebenfalls vorwegnimmt, ist dies wahrscheinlich Ihr Fehler.

+0

Dank für Ihre Antwort /Socialnetwork/rest/linkedin/wird gesamter Pfad für mein Java-Projekt definiert mein Java-Projekt Rest- in web.xml linkedin- meinem Endpunkt in der Klasse geben definiert SocialNetwork- wo Meine Methode ist definiert und authcode-mein Endpunkt für die Methode, so funktioniert die gesamte URL, die ich erwähnte für jeden anderen Web-Service in diesem Paket erstellt. aber es ist nur die POST-Methode, die nicht funktioniert – aniket

+0

Nur um es raus zu werfen ..Haben Sie versucht, den Server neu zu starten? Ich bin mir jetzt sicher, wie Java-Entwicklung ist, aber wenn Sie eine ausführbare Datei ausführen, dann stelle ich mir vor, dass Sie sie nach der Änderung erneut erstellen und ausführen müssen. Stellen Sie sicher, dass Sie dies nicht vergessen haben. – Lansana

+0

Versuchen Sie auch, einen anderen 'POST'-Endpunkt zu erstellen und sehen Sie, ob Sie ihn treffen können. Wenn Sie können, liegt ein Problem mit dem obigen Code vor. Wenn Sie nicht können, ist das Problem wahrscheinlich woanders. – Lansana

Verwandte Themen