Verbix API在Java中返回403错误,Postman可正常请求如何解决?
Verbix API Java请求返回403错误的解决方案
问题核心原因
Postman发送请求时会自动携带客户端标识类请求头,而Java HttpURLConnection 默认不会添加这些头,服务器可能因无法识别请求来源而返回403权限拦截错误。
修复代码示例
在请求中添加Postman默认携带的关键请求头,模拟合法客户端请求特征:
public static void main(String[] args) throws IOException { URL url = new URL("https://api.verbix.com/conjugator/iv1/6153a464-b4f0-11ed-9ece-ee3761609078/1/8442/8442/%EB%B0%9B%EB%8B%A4"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); // 添加必要请求头,匹配Postman请求特征 con.setRequestProperty("User-Agent", "PostmanRuntime/7.32.3"); con.setRequestProperty("Accept", "*/*"); con.setRequestProperty("Accept-Encoding", "gzip, deflate, br"); // 处理响应,优先检查响应状态码 int responseCode = con.getResponseCode(); BufferedReader in; if (responseCode == HttpURLConnection.HTTP_OK) { in = new BufferedReader(new InputStreamReader(con.getInputStream())); } else { // 读取错误流获取服务器拒绝的具体原因 in = new BufferedReader(new InputStreamReader(con.getErrorStream())); } String inputLine; StringBuffer content = new StringBuffer(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } System.out.println("Response Result: " + content.toString()); in.close(); }
额外排查方向
- 完全对齐请求头:在Postman的「Headers」标签中复制所有自动生成的请求头,全部添加到Java代码中,确保请求特征完全一致。
- 验证API令牌有效性:确认URL中的API令牌(
6153a464-b4f0-11ed-9ece-ee3761609078)是否过期或权限范围不足。 - 检查IP限制:部分API会限制请求IP,确认Java代码运行环境的IP是否在允许列表内。
内容的提问来源于stack exchange,提问作者mattsmith5
相关产品推荐
相关产品推荐

