【问题标题】:Server internal error with post request in api restfulapi restful 中的发布请求的服务器内部错误
【发布时间】:2015-06-02 18:34:41
【问题描述】:

我在测试 API 中的发布请求时遇到问题,我看不到错误在哪里。

这里有 API

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;

import test.api.models.Test;
import test.api.MediaType;

@Path("/test")
public class testResource {

    @GET
    public String getSomething(){
        return "Ok GET";
    }

    @POST
    @Consumes(MediaType.TEST)
    public String postSomething(Test test){

        System.out.println("Got:  " + test);
        return "Ok POST";
    }

}

问题是当我从邮递员应用程序向 localhost:8080/test-api/test 发出获取请求时,我得到“Ok GET”。但是如果我做一个发布请求,我会收到 500 服务器错误。我正确设置了内容类型标题字段。 我得到的错误是:

"message": "HTTP 500 Internal Server Error",
"status": 500

这就是我发送数据的方式:

{
  "a": "one",
  "b": "two"
}

我认为问题可能出在 Test 类中,因为如果我将 postSomething 方法的输入参数更改为 String 类型,我会得到“Ok POST”。

这是我没有看到任何奇怪的测试类...

public class Test {

    public String a;
    public String b;

    public Test ( String a, String b){
        this.a = a;
        this.b = b;
    }

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
    }

}

有人看到奇怪的东西吗?

谢谢。

【问题讨论】:

    标签: api rest postman


    【解决方案1】:

    问题可能是发布数据,也许您必须对发布数据进行 url 编码。 试试下面的 post 数据,它是 url 编码的。

    %7B%22a%22%3A%20%22one%22%2C%22b%22%3A%20%22two%22%7D
    

    或者您可以尝试http://meyerweb.com/eric/tools/dencoder/ 对您自己的数据进行编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 2021-01-14
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多