用okhttp3就能正常返回json,但用retrofit2返回的就是网页内容,这是为什么?

如题,retrofit2返回的就是网页内容,用okhttp3就能正常返回json,下面是运行代码。

retrofit2

public interface Api {

@HTTP(method = "GET",path = "/")

@Headers({

"accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",

"user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"

})

Call<ResponseBody> getData();

}

public class Test {

public static void main(String[] args) {

Retrofit retrofit = new Retrofit.Builder()

// .addConverterFactory(GsonConverterFactory.create())

.baseUrl("https://api.lolicon.app/setu/v2/") // api地址

.build();

Api api = retrofit.create(Api.class);

Call<ResponseBody> data = api.getData();

data.enqueue(new Callback<ResponseBody>() {

@Override

public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

System.out.println("返回成功");

try {

System.out.println(response.body().string()); // 访问成功,但是返回的是网页内容

} catch (IOException e) {

e.printStackTrace();

}

}

@Override

public void onFailure(Call<ResponseBody> call, Throwable t) {

System.out.println("返回失败");

System.out.println(t.getMessage());

}

});

}

}

OKhttp3

public class Test2 {

public static void main(String[] args) {

String url = "https://api.lolicon.app/setu/v2/";

OkHttpClient okHttpClient = new OkHttpClient();

Request build = new Request.Builder().url(url).get().build();

Call call = okHttpClient.newCall(build);

call.enqueue(new Callback() {

@Override

public void onFailure(@NotNull Call call, @NotNull IOException e) {

System.out.println("失败了");

System.out.println(e.getMessage());

}

@Override

public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {

System.out.println(response.body().string()); // 能正常返回

}

});

}

}

以上是 用okhttp3就能正常返回json,但用retrofit2返回的就是网页内容,这是为什么? 的全部内容, 来源链接: utcz.com/p/944154.html

回到顶部