java - 如何从java运行curl(在java中使用curl命令)命令?
问题描述
一旦我在终端中点击 curl 代码,我就能够得到 200,所以我假设我编写 testStytch 的方式到目前为止还可以。但是一旦我尝试集成到一个 java 文件中,我就会得到一个错误的请求响应。我现在一点头绪都没有。 https://github.com/libetl/curl这就是我所说的转换我的 curl 代码。
这是我得到的错误。HttpResponseProxy{HTTP/1.1 400 错误请求 [日期:格林威治标准时间 2021 年 4 月 22 日星期四 23:21:42,内容类型:应用程序/json,内容长度:189,连接:保持活动,Traceparent:00-d3a39218eb8d091ffe3bf5cb474692ce-353a1a23da4e5dc4 -01] ResponseEntityProxy{[Content-Type: application/json,Content-Length: 189,Chunked: false]}}
@RequestMapping(value = "/loginByStytch" , method = RequestMethod.POST)
public synchronized String loginByStytch(ModelMap model, HttpServletRequest
request) throws Exception {
mapper = new ObjectMapper();
String hashPassword;
UserInfoBean userInfoBean = mapper.readValue(request.getParameter("data"),
new TypeReference<UserInfoBean>() { });
String testStytch = "-k -X POST 'https://test.stytch.com/v1/magic_links/send_by_email' -u project-test-b3ca64c2-b0c8d73:secret-test-s5lO3O -H 'Content-Type: application/json' -d '{\"email\":\"yiikikkano@nllllc.com\",\"magic_link_url\":\"http://localhost:8080/ROOT/NC/authenticateByStytch\",\"expiration_minutes\":500}'";
HttpResponse response = curl(testStytch);
InputStream inputStream = response.getEntity().getContent();
String jsonContent = convert(inputStream, Charset.forName("UTF-8"));
request.getSession().setAttribute(Constant.SESSION_NAME, null);
return "redirect:/timeline";
}
解决方案
好吧,您可以将 curl 与流程对象一起使用,手工制作的方式,我对您使用的这个库知之甚少,但不太为人所知,所以我会避免,您也可以使用它获得一个 inputStream,并且习惯于填充响应流:
String command = "curl -X POST https://your_url/path --data foo=bar";
Process process = Runtime.getRuntime().exec(command);
process.getInputStream();
推荐阅读
- interface-builder - 如何在 Xcode 11 中分配动态文本样式?
- database - 如何在mongo db中的用户之间的聊天对话中找到最后一条消息
- python - 读取 numpy 数组中的多个 s3 对象并连接
- python - Python:在生成器的开头插入元素
- visual-studio - TeamCity 继续构建已从我的 Visual Studio 解决方案配置中排除的项目
- xamarin.android - Android Xamarin 看不到我的 Resource.Id.TagName
- c# - 当我尝试计算使用直径和中心点绘制圆的点时,我得到了奇怪的值
- node.js - 如何使用 upsert sequelize cli 更新现有数据
- r - 在R中创建变量的麻烦
- java - 如何创建具有相同实体的两个类?