相关文章推荐
不羁的围巾  ·  Python - ...·  2 月前    · 
爱跑步的山寨机  ·  Troubled trying to ...·  1 年前    · 

初步猜测原因:
okhttp并非原生的http请求,它在header里面并没有真正的User-Agent,而是“okhttp/版本号”这样的字符串;

解决方案:
为okhttp设置User-Agent可以解决问题。

OkHttpClient.Builder builder = new OkHttpClient().newBuilder() ;  
builder.addInterceptor(new Interceptor() {  
    @Override  
    public Response intercept(Chain chain) throws IOException {  
        Request newRequest = chain.request().newBuilder()  
                .removeHeader("User-Agent")  
                .addHeader(
                    "User-Agent",
                    "Mozilla/5.0 (
                        Windows; U; Windows NT 5.1; en-US; rv:0.9.4
                ).build() ;  
        return chain.proceed(newRequest);  
OkHttpClient client = builder.build() ;  
Retrofit retrofit  = new Retrofit.Builder()  
        .baseUrl(baseUrl)  
        .addConverterFactory(FastJsonConverterFactory.create())  
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())  
        .client(client)  
        .build();  
初步猜测原因: okhttp并非原生的http请求,它在header里面并没有真正的User-Agent,而是“okhttp/版本号”这样的字符串;解决方案: 为okhttp设置User-Agent可以解决问题。OkHttpClient.Builder builder = new OkHttpClient().newBuilder() ; builder.addIntercept... public interface Api { @POST(product/getProductDetail) Observable getGoods(@QueryMap Map map); @POST(product/addCart) Observable getAdd(@QueryMap Map map); @POST(product/getCarts) Observable getShopCar(@Q https:网络请求实现模块。 model:数据模型,实体类定义。 repository:数据仓库,包括网络接口请求数据,sqlite数据库,文件File存储,SharedPreferences数据存储。 view:视图层,包含Activiy+Fragment类。 viewmodel:控制层。 utils:工具模块。
某些API应该是服务器设置了限制,使得手机端okhttp作为 http客户端时,获取数据,服务器返回HTTP 403禁止访问。 服务器禁止访问了,因为okhttp并不是真正的原生的http请求,它在header中并没有真正的User-Agent,而是“okhttp/版本号”。 如果是单纯的okHttp请求,不加Retrofit的 Request request = new Request.Builder().url(url) .removeHe...
异常处理Retrofit本身会抛出HttpException,Gson解析会抛出解析异常, 此外我们还应该处理与服务器约定好的“异常”,即上一篇提到的返回数据中result字段值不会0的情况这里要先解决一个问题,就是Gson构建的对象,通过注解定义key名,以变量的类型定value的类型, 但如果同样的key在不同情况下属于不同的数据类型,就会出问题。 假如服务器返回格式是{
开始本博客之前,请先阅读: Retrofit请求数据对错误以及网络异常的处理 异常&错误实际开发经常有这种情况,比如登录请求,接口返回的 信息包括请求返回的状态:失败还是成功,错误码,User对象等等。如果网络等原因引起的登录失败可以归结为异常,如果是用户信息输入错误导致的登录失败算是错误。假如服务器返回的是统一数据格式:/** * 标准数据格式 * @param <T> 最近项目中遇到一件怪事,在get请求中发现没有数据,在debug时候发现居然爆了一个retrofit2.adapter.rxjava.HttpException: HTTP 400错误。经过查阅资料发现400 请求出错 由于语法格式有误,服务器无法理解此...
dependencies { implementation 'com.squareup.retrofit2:retrofit:2.9.' implementation 'com.squareup.retrofit2:converter-gson:2.9.' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.1' 2. 创建一个Retrofit实例: val retrofit = Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) .build() 3. 创建一个接口来定义API: interface ApiService { @GET("users/{user}/repos") suspend fun listRepos(@Path("user") user: String): List<Repo> 4. 使用协程来发起网络请求: val service = retrofit.create(ApiService::class.java) val repos = service.listRepos("octocat") 以上就是使用Kotlin协程和Retrofit生成网络请求框架的基本步骤。
Python numpy Import Error Something is wrong with the numpy installation. an older 金焱111: python安装目录下的libs文件夹中没有dll文件