1

我正在尝试在 java 中发布 api.discogs.com/marketplace/listings?...

当我尝试发布新列表帖子时,结果是“返回 422 null 的响应状态”。

“422 Unprocessable Entity 您的请求格式正确,但请求正文存在语义错误。这可能是由于 JSON 格式错误、缺少参数或类型错误,或者尝试执行不正确的操作有任何意义。检查响应正文以获取有关问题的具体信息。

“Invalid release_id:expected integer”显示为一条消息。

我的 get 方法有效,但 post 无效。

int release_id;
String condition;
int listing_id;
String sleeve_condition;
String comments;
String allow_offers;
string status;
String external_id;
String location;
string weight;
String format_quantity;
private Double price = Double.valueOf(0);

json = doPost("/marketplace/listings?release_id=" + product.getRelease_id() + "&sleeve_condition=" + product.getCondition() + "&price=" +product.getPrice());

"https://api.discogs.com/marketplace/listings?release_id=1113859&condition=poor&price=2000.0&status=Mint"



   WebResource webResource = initRest(restUrl);
    ClientResponse resp = webResource.type("application/json")
            .header("Authorization", "Discogs token=" + token)
            .header("JTLSyncTool/0.1", "+https://#####")
            .post(ClientResponse.class);

有人有想法吗?

感谢大家!

4

1 回答 1

0

为了测试代码的工作情况,我直接写了如下。

json = doPost("/marketplace/listings?release_id="+1113859+"&status=Draft"
                      +"&condition="+"Mint%20(M)"+ "&price=" +2000.0);



 protected static JSONObject doPost(String restUrl) {
        JSONObject json = null;

        WebResource webResource = initRest(restUrl);
        ClientResponse resp = webResource.type("application/json")
                .header("Authorization", "Discogs token=" + token)
                .header("JTLSyncTool/0.1", "+https://www.####.de")
                .post(ClientResponse.class);
        json = parseRest(json, resp);
        if(resp.getStatus() > 250) {
            PersistenceHelper.addError(DiscogsApi.class.getName(), restUrl);
            PersistenceHelper.addError(DiscogsApi.class.getName(), resp.toString());
        }

        return json;
    }
于 2021-11-05T07:56:25.697 回答