当前位置: 首页 > 知识库问答 >
问题:

使用改装从API Post调用获取错误请求

周越泽
2023-03-14

我在PartnerController类中创建了下一个savePartner()方法,如下所示:

 public void savePartner(View partnerForm) {
        context = partnerForm.getContext();

        PartnerDto partner = createPartner(partnerForm);
        
        String jsonPartner = convert(partner);

        Call<String> call = appAPI.savePartner("application/json", jsonPartner);

        Log.i(TAG, "getPartners submitted to API.");

        call.enqueue(new Callback<String>() {
            @Override
            public void onResponse(Call<String> call, Response<String> response) {
                if(response.isSuccessful()) {
                    String responseCall = response.body();

                } else {
                    System.out.println(response.errorBody());
                }
            }

            @Override
            public void onFailure(Call<String> call, Throwable t) {
                TableRow rowHeader = new TableRow(context);

                TextView name = new TextView(context);
                name.setText(t.getMessage());

                rowHeader.addView(name);

                //partnerForm.addView(rowHeader);

                t.printStackTrace();
            }
        });
    }

我还添加了savePartner方法来改进界面:

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;

public interface IApplicationApi {
    @GET("Partner/")
    //Call<List<PartnerDto>> loadPartners(@Header("Authorization") String authorization);
    Call<List<PartnerDto>> loadPartners();

    @POST("Partner/")
    Call<String> savePartner(@Header("Content-Type") String content_type, @Body String partner);
}

当我在postman works(代码200)中执行post call时,但我在android-dhtml" target="_blank">ios中调试了之前的调用,并获得了下一个错误:

响应{协议=超文本传输协议/1.1,代码=400,消息=错误请求, url=https://localhost/Partner/}

我无法获得有关错误的更多信息。下一个请求是:

Request{method=POST, url=https://localhost/Partner/, tags={类改造2。调用=管理员。我的项目。应用程序服务。IApplication ationApi.save合作伙伴()[应用程序/json,{"email": null,"id": 4,"lastname": null,"name":"me","phonenumber": 0,"product金额": 0.0,"product量": 0.0,"ynstereddate":"2021-02-10T00:00:00"}]}}

我把这些价值观写在了《邮差》上,它就像一个符咒。我不知道为什么这个要求不好。有人能给我一些线索吗?

提前感谢您的帮助^^

2021 3月1日更新

我可以使用httplogginginterceptor获得错误原因,我将此分享给其他人以备不时之需:)

https://howtodoinjava.com/retrofit2/logging-with-retrofit2/

共有2个答案

澹台志诚
2023-03-14

尝试将此@POST(“合作伙伴/”)替换为@POST(“合作伙伴”)

胡承载
2023-03-14

您可以使用HttpLoggingInterceptor记录您的请求。我希望您的json正文或请求正文中缺少一个字段

 类似资料:
  • 我正在创建一个Web服务,但是当我调用http://localhost:8080/mdn/addendpoint,我得到了一个stacktrace,尽管我期望JSON数据会存储在我的数据库中。 这是实体类: 这是控制器: 所有其他相关的类也存在。这是我试图作为请求体发送的JSON输入: 但是,当我执行此请求时,我会得到以下stacktrace:

  • Apipost 是一个支持模拟 POST、GET、PUT 等常见 HTTP 请求,支持团队协作,并可直接生成并导出接口文档的 API 文档、调试、Mock、测试一体化协作平台。

  • null 然后,我尝试使用和基本的,结果相同。对于200范围,我得到了代码,但在上面,我收到的statusCode为0。 更新:我正在运行63.0.3239.132版的Chrome,如果它有什么不同的话。 > 我已经尝试了大约5种不同的fetch变体。 输出字符串错误 使用 -StatusCode对于错误始终为0 null

  • 我无法恢复数据从我的Wordpress API与改造库。错误是:HTTP FAILED:java.net.未知主机异常:无法解决主机"app.divion.fr":没有地址与主机名关联 ApiClient: } API接口: 公共接口{ } 显示xml Thx;)

  • 通过邮递员API正在工作,但相同的API不与改造工作,我收到400个错误的改造要求 返回true或false的endpoint@POST(“/emrmegax/api/allscript/saveappointment”)调用saveappointment(@Header(“x-auth-token”)字符串header1,@Body字符串yy);