请求接口时 一直响应308 ,求指点。
使用的 是OkHttp+Retrofit 发送的请求
https://www.okx.com/api/v5/trade/order
答案:
这个308错误表示请求需要重定向,但是客户端似乎不会自动重定向到新的位置。这通常是因为请求的URL被更改,但客户端没有实现正确的逻辑来遵循重定向请求。您需要检查您的代码是否正确地处理了HTTP重定向响应。
具体来说,您需要检查您的请求是否带有必要的请求头信息,并正确配置Retrofit和OkHttp的请求拦截器,以允许重定向请求。
以下是一个可能的解决方案:
首先,确保您的请求头信息中包含必要的内容,例如User-Agent、Cookies等。您可以使用OkHttp的拦截器来添加这些信息。以下是一个示例:
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request request = chain.request().newBuilder()
.addHeader("User-Agent", "Your-User-Agent")
.addHeader("Cookie", "Your-Cookie-Value")
.build();
return chain.proceed(request);
}
})
.build();
其中,您需要将"Your-User-Agent"和"Your-Cookie-Value"替换为您的实际信息。
接下来,您需要配置OkHttp和Retrofit的请求拦截器,以允许重定向请求。以下是一个示例:
OkHttpClient client = new OkHttpClient.Builder()
.followRedirects(true)
.followSslRedirects(true)
.retryOnConnectionFailure(true)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://www.okx.com/")
.client(client)
.build();
其中,您需要将baseUrl替换为您的实际API地址。
请注意,重定向请求可能会带来一些安全风险,因此请确保只在必要时允许重定向请求,并对响应结果进行正确的验证和处理。
至此,我希望这些信息可以帮助您解决问题。如果您仍然遇到问题,请提供更多详细的请求信息和错误信息,以便我们更好地帮助您。
http 状态返回码 308 表示当前请求的资源已经永久的转移到其他的uri