gpt4 book ai didi

java - 如何使用改造 2 发出 POST 请求?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:59 25 4
gpt4 key购买 nike

我只能运行文档中的 hello world 示例 (GithubService)。

问题是当我运行我的代码时,在 onFailure()

中出现以下错误

Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $

我的 API 采用 POST 参数值,因此无需将它们编码为 JSON,但它确实以 JSON 格式返回响应。

对于响应,我得到了使用工具生成的 ApiResponse 类。

我的界面:

public interface ApiService {
@POST("/")
Call<ApiResponse> request(@Body HashMap<String, String> parameters);
}

以下是我使用该服务的方式:

HashMap<String, String> parameters = new HashMap<>();
parameters.put("api_key", "xxxxxxxxx");
parameters.put("app_id", "xxxxxxxxxxx");

Call<ApiResponse> call = client.request(parameters);
call.enqueue(new Callback<ApiResponse>() {
@Override
public void onResponse(Response<ApiResponse> response) {
Log.d(LOG_TAG, "message = " + response.message());
if(response.isSuccess()){
Log.d(LOG_TAG, "-----isSuccess----");
}else{
Log.d(LOG_TAG, "-----isFalse-----");
}

}
@Override
public void onFailure(Throwable t) {
Log.d(LOG_TAG, "----onFailure------");
Log.e(LOG_TAG, t.getMessage());
Log.d(LOG_TAG, "----onFailure------");
}
});

最佳答案

如果你不想要 JSON 编码的参数,使用这个:

@FormUrlEncoded
@POST("/")
Call<ApiResponse> request(@Field("api_key") String apiKey, @Field("app_id") String appId);

关于java - 如何使用改造 2 发出 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com