Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http POST请求对邮递员有效,但在改造请求时得到403_Http_Kotlin_Retrofit_Postman_Http Status Code 403 - Fatal编程技术网

Http POST请求对邮递员有效,但在改造请求时得到403

Http POST请求对邮递员有效,但在改造请求时得到403,http,kotlin,retrofit,postman,http-status-code-403,Http,Kotlin,Retrofit,Postman,Http Status Code 403,我正在尝试使用POST请求登录到服务器 问题是,当我使用邮递员请求时,一切都正常,但当使用改装请求时,我得到403 这是我的请求,正如预期的那样,我使用伪字符串替换了我的名字和密码,因为这是一个私有服务器。这是我的改装代码: @FormUrlEncoded @POST("system/login.pl") fun login(@Header("cache-control") cacheControl: String = "no-cache", @Field("login_hi

我正在尝试使用POST请求登录到服务器

问题是,当我使用邮递员请求时,一切都正常,但当使用改装请求时,我得到403

这是我的请求,正如预期的那样,我使用伪字符串替换了我的名字和密码,因为这是一个私有服务器。这是我的改装代码:

@FormUrlEncoded
@POST("system/login.pl")
fun login(@Header("cache-control") cacheControl: String = "no-cache",
          @Field("login_hidden", encoded = true) loginHidden: String = "1",
          @Field("destination", encoded = true) destination: String = "/auth",
          @Field("credential_0", encoded = true) username: String = "",
          @Field("credential_1", encoded = true) password: String = ""
): Flowable<Response<String>>

尝试记录您通过改造从新网络拦截器发送的完整请求,并通过单击右上角的“代码”按钮将其与您从Postman获得的内容进行比较。如果有什么不同可以解释为什么你会得到不同的回答,我已经试过了。还尝试将代码从邮递员导入应用程序,但根本不起作用。然后,它可能与重定向相关:默认情况下,邮递员被配置为跟踪重定向并存储cookies,而OkHttp跟踪重定向,但不存储/发送任何cookies,除非您将其配置为这样做。你有没有检查过邮递员是否保存了饼干?我这样做主要是为了得到一个特定的饼干。但我用webView和Javascript解决了这个问题
private fun makeOkHttpClient(httpLoggingInterceptor: HttpLoggingInterceptor): OkHttpClient {
    return OkHttpClient.Builder()
            .addInterceptor(httpLoggingInterceptor)
            .addNetworkInterceptor { chain ->
                chain.proceed(
                        chain.request()
                                .newBuilder()
                                .header("User-Agent", "Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0")
                                .build()
                )
            }
            .connectTimeout(120, TimeUnit.SECONDS)
            .readTimeout(120, TimeUnit.SECONDS)
            .build()
}