使用apache http client调用其他服务器接口时报错怎么办
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章主要讲解了"使用apache http client调用其他服务器接口时报错怎么办",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"使用apach
千家信息网最后更新 2025年01月25日使用apache http client调用其他服务器接口时报错怎么办
这篇文章主要讲解了"使用apache http client调用其他服务器接口时报错怎么办",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"使用apache http client调用其他服务器接口时报错怎么办"吧!
今天在使用 apache http client 调用 其他服务器的接口的时候, get 请求报错了
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not parse 'Accept' header [text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8]: Invalid mime type "*/;q=0.8": does not contain subtype after '/'org.springframework.util.InvalidMimeTypeException: Invalid mime type "*/;q=0.8": does not contain subtype after '/'
说是不支持 header 的 accept 类型。 因为这个 服务器的接口默认只支持返回 json 格式的。所以报错了,修改 http client 的请求header 的 acept 即可
代码如下:
/** * GET方式提交数据 * * @param url 待请求的URL * @param params 要提交的数据 * @param enc 编码 * @param resEnc 响应内容的编码 * @return 响应结果 */ public static String doGet(String url, Mapparams, String enc, String resEnc) { String response = EMPTY; HttpGet getMethod = null; if (StringUtils.isEmpty(url)) { return null; } StringBuffer strtTotalURL = getTotalUrl(url, params, enc); logger.debug("GET请求URL = \n" + strtTotalURL.toString()); try { getMethod = getGetMethod(strtTotalURL.toString()); getMethod.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=" + enc); // 执行getMethod HttpResponse httpResponse = getHttpClient(url).execute(getMethod); response = getResponse(url, httpResponse, resEnc); } catch (ClientProtocolException e) { logger.error("发生致命的异常,可能是协议不对或者返回的内容有问题" + e.getMessage(), e); } catch (IOException e) { logger.error("发生网络异常" + e.getMessage(), e); } finally { if (getMethod != null) { getMethod.releaseConnection(); getMethod = null; } } return response; } /** * 模拟浏览器GET提交 * * @param url * @return */ private static HttpGet getGetMethod(String url) { if (!url.startsWith(HTTP)) { url = "http://" + url; } HttpGet pmethod = new HttpGet(url); // 设置响应头信息 pmethod.addHeader("Connection", "keep-alive"); pmethod.addHeader("Cache-Control", "max-age=0"); pmethod.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) "); // pmethod.addHeader("Accept", // "text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8"); // 设置接收所有类型的,否则如果请求的服务器只支持 application/json 那么就会报错 pmethod.addHeader("Accept", "*/*"); return pmethod; }
改为 pmethod.addHeader("Accept", "*/*"); 即可
改进
以上的说法是错的。
从报错的信息就可以看出, 是 */ 这种写法 错误的。导致header accept 解析不成功。
改为
pmethod.addHeader( "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
完整版
pmethod.addHeader( "Accept", "text/html,application/xhtml+xml,application/xml;application/json,*/*;q=0.9,*/*;q=0.8");
感谢各位的阅读,以上就是"使用apache http client调用其他服务器接口时报错怎么办"的内容了,经过本文的学习后,相信大家对使用apache http client调用其他服务器接口时报错怎么办这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
服务器
服务
接口
怎么办
时报
内容
学习
支持
信息
数据
类型
编码
问题
不对
成功
代码
写法
就是
思路
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
复古冰雪服务器
成都交友软件开发价格
瑞安沉巢网络技术有限公司
平安科技 网络安全
上海门禁软件开发价钱
飞行管理计算机内的数据库有哪些
想学网络安全从哪开始学
虚幻5 服务器
华为服务器内部线缆供应商
五万人的购物平台需要的服务器
浦东新区市场软件开发供应商
小型服务器安装什么安全软件
怎么总是连接服务器失败
计算机网络技术专插本学什么
网络安全敏感信息泄露
黑道总裁服务器
agv系统软件开发
网络安全教育检讨材料
互联网云计算科技有限公司
蔬菜水果识别软件开发
泰安智能养老软件开发系统
研发费用包括软件开发
数据库 枚举类型
分析软件开发招聘
宝骏互联网科技
复制数据库到新文件夹
泰拉瑞亚多人模式开服发现服务器
科蓝软件数据库安全性
华为服务器湖北
水果龙载网络技术