java - 如何修复:“java.lang.ClassCastException:com.mashape.unirest.http.HttpResponse 无法转换为 org.apache.http.HttpResponse”
问题描述
我正在尝试连接到我们的 Shopify 商店以获取有关我们订单的 JSON 或字符串。我使用 POSTMAN 软件为“Java Unirest”生成的代码片段:
public void getNewShopifyOrders() throws MalformedURLException, IOException, JSONException, SQLException {
try {
HttpResponse response = (HttpResponse) Unirest.get("https://nameStore.myshopify.com/admin/api/2019-04/orders.json")
.header("Authorization", "Basic AuthenticationString")
.header("cache-control", "no-cache")
.header("Postman-Token", "postmanToken")
.asString();
System.out.println(response);
} catch (UnirestException ex) {
Logger.getLogger(Main_Window.class.getName()).log(Level.SEVERE, null, ex);
}
}
我尝试了生成的代码,我需要导入
- Httpcomponents-client-4.5.8
- Httpcomponents-core-4.4.11
- unirest-java-1.4.9.jar
- Httppasyncclient-4.0-beta4.jar
但是我仍然遇到问题,我需要稍微更改代码,因为我遇到的错误是:
HttpResponse response = Unirest.get() - 出现“HttpResponse 不接受参数”的问题,删除它后会出现错误:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.mashape.unirest.http.HttpResponse cannot be cast to org.apache.http.HttpResponse
at quirkygiftliibrarydatabasemanager.Main_Window.getNewShopifyOrders(Main_Window.java:1816)
at quirkygiftliibrarydatabasemanager.Main_Window.jButton_RefreshShopifyOrdersActionPerformed(Main_Window.java:803)
at quirkygiftliibrarydatabasemanager.Main_Window.access$1200(Main_Window.java:44)
at quirkygiftliibrarydatabasemanager.Main_Window$14.actionPerformed(Main_Window.java:531)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
有人可以帮我吗?
解决方案
我找到了使用 Unires 获取 JSON 的解决方案,这是连接到 Shopify 商店以获取订单列表的代码:
com.mashape.unirest.http.HttpResponse<JsonNode> response = Unirest.get("https://shopName.myshopify.com/admin/api/2019-04/orders.json").basicAuth("Api-Key", "Password").asJson();
JSONObject myJSON = response.getBody().getObject();
我希望这对其他人也有帮助:)
推荐阅读
- powershell - 使用powershell v2分配给递归gci搜索省略文件夹时没有返回变量
- c# - C# 属性列表。需要根据 2 个条件对它们进行分组
- wordpress - 您如何使用 wordpress 选项 API 为插件设置选项页面的样式?
- git - 如何在 Github Desktop 上刷新远程分支列表?
- azure - 从浏览器应用程序联系我的 ASP.NET Core 3.1 API 时看不到访问令牌中的角色声明
- html - CSS:为什么悬停动画在悬停停止时停止?
- google-chrome - 谷歌浏览器执行脚本通过一个查询返回多个值?
- vue.js - 如何在单独的非 Vue 组件、JavaScript/TypeScript 文件中访问 Vuex 状态?
- fxmlloader - 在我的 JavaFX 项目中解析 onAction 方法时出错
- node.js - 无法在 ejs 模板中显示 api 数据