java - HttpsURLConnection 频繁出现 504 错误
问题描述
我在 Java-1.8 中使用 HttpsURLconnection 并发布到带有一些参数的 URL。多次收到 200 成功响应,但有时收到 504 网关超时错误。
我在这个错误中挣扎了很长时间。任何指导都会有很大帮助。下面是正在使用的代码。
public static void sendPostRequest(String url, ResourceRequest resourceRequest,
ResourceResponse resourceResponse)
{
String token_response = "";
String grant_password = PrefsPropsUtil.getString("grant.type");
String client_id = PrefsPropsUtil.getString("client.id");
String user_name = PrefsPropsUtil.getString("user.name");
String client_secret = PrefsPropsUtil.getString("client.secret");
PrintWriter out = resourceResponse.getWriter();
URL obj = new URL(url);
System.setProperty("jdk.http.auth.proxying.disabledSchemes", "");
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
//add request header
con.setRequestMethod("POST");
// con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
String urlParameters = "grant_type=" + grant_password + "&client_id=" + client_id + "&username=&client_secret=" + client_secret;
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
con.disconnect();
//print result
System.out.println(response.toString());
out.println(response);
}
在上面的代码中,我不知道我在哪里做错了,请纠正我。
解决方案
5xx
代码被视为服务器错误。因此,这很可能不是请求方的问题。
504 Gateway Timeout:服务器作为网关或代理,没有收到上游服务器的及时响应。
我建议您检查服务器以获取正确的代理设置或上游服务器的稳定性等。从 中HttpsURLconnection
说不出什么,这似乎是通用的。
推荐阅读
- react-native - 如何从抽屉导航器传递函数
- xamarin.android - Appcenter 无法确定“v11.0”的 $(TargetFrameworkVersion) 的 API 级别
- android - 使用 Delphi,我正在尝试更改 AndroidTTS 的音量,但我似乎不断收到错误“外部异常 1”
- wordpress - 如何通过 Wordpress REST API 对 LearnDash 中受保护数据的远程访问进行身份验证?
- java - 时间/空间复杂度
- linux-mint - 如何让 Caja 与 Samba 共享一起工作?
- glsl - 如何在 HLSL 中声明 GS 中的流输出?
- .net - AzureDevops & dotnet pack:##[错误]没有文件与搜索模式匹配
- java - android 视图的源类
- android - 如何在单独的存储库 (MVVM) 中传递 Firestore SnapshotListener 提供的实时数据