gpt4 book ai didi

java - 如何从 Retrofit2 获得字符串响应?

转载 作者:IT老高 更新时间:2023-10-28 21:10:01 25 4
gpt4 key购买 nike

我正在做 android,正在寻找一种方法来做一个 super 基本的 http GET/POST 请求。我不断收到错误消息:

java.lang.IllegalArgumentException: Unable to create converter for class java.lang.String

网络服务:

public interface WebService {
@GET("/projects")
Call<String> jquery();
}

然后在我的java中:

    Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://jquery.org")
// .addConverterFactory(GsonConverterFactory.create())
.build();

WebService service = retrofit.create(WebService.class);
Call<String> signin = service.jquery();

Toast.makeText(this, signin.toString(), Toast.LENGTH_LONG).show();

我实际上只是尝试使用 GET 请求查询 jquery.org/projects 并返回它响应的字符串。怎么了?

如果我尝试实现自定义转换器(我在网上找到了一些示例),它会提示我没有实现抽象方法 convert(F),而这些示例都没有。

谢谢。

最佳答案

将 Retrofit2 和 ScalarsConverterFactory 添加到您的 Retrofit.Builder。

adapterBuilder = new Retrofit.Builder()
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create());

要使用 ScalarsCoverter,请将以下依赖项添加到您的构建 graddle 中

implementation 'com.squareup.retrofit2:converter-scalars:2.9.0' 
implementation 'com.squareup.retrofit2:retrofit:2.9.0' //Adding Retrofit2

For API Call use:
Call <String> *****

安卓代码:

.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
Log.i("Response", response.body().toString());
//Toast.makeText()
if (response.isSuccessful()){
if (response.body() != null){
Log.i("onSuccess", response.body().toString());
}else{
Log.i("onEmptyResponse", "Returned empty response");//Toast.makeText(getContext(),"Nothing returned",Toast.LENGTH_LONG).show();
}
}

关于java - 如何从 Retrofit2 获得字符串响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36523972/

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