2017-08-14 159 views
-5

休息控制器:405錯誤在POST方法

@Path("/json") 
public class Second { 
    @POST 
    @Path("/say") 
    @Consumes(MediaType.TEXT_PLAIN) 
    public String hello() { 
     return "hello"; 
    } 
} 

請求呼叫返回的HTTP狀態代碼405

+0

需要更多的細節:什麼服務器,版本,配置,調用代碼 –

+0

你如何訪問端點「說」? –

+1

你應該明確你的要求是什麼(參數等)。 –

回答

1


首先,405是方法不允許的錯誤。所以你需要把它改成@GET。
其次,如果你要打印JSON,你應該使用@Produces({} MediaType.APPLICATION_JSON) 這裏是GET方法的例子:

//GET method to print JSON 
@Path("/say") 
@GET 
@Produces({MediaType.APPLICATION_JSON}) 
public String hello() 
{ 
    return "{\"message\":\"hello\"}"; 

} 

,或者如果你必須讓普通字符串(如提及問題),那麼試試這個:

@Path("/say") 
    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String hello() 
    { 
     return "hello"; 

    } 

對於POST方法,你需要傳遞的數據(在這種情況下,字符串)作爲參數

@Path("/say") 
    @POST 
    @Produces(MediaType.TEXT_PLAIN) 
    public String hello(String name) 
    { 
     return "hello "+name; 

    } 

P.S.也不要忘記給你的HTML輸入標籤的名稱屬性

希望它有幫助。

+0

thanku 4 rply @Ashish Raj ... bt的GET方法工作良好...但我使用POST方法代碼錯誤..我可以幫助我編寫代碼.. – pooja

+0

告訴我你需要發佈什麼json, –

+1

我需要發佈名稱是在我的HTML格式的文本字段中。當我點擊保存按鈕時,我需要這個名稱來查看我的服務器。 @ Ashish Raj – pooja