当前位置: 首页 > 知识库问答 >
问题:

如何从java运行curl(使用curl命令在java)命令?

弘思聪
2023-03-14

当我在终端中点击curl代码时,我得到了200,所以我假设我编写testStytch的方式到目前为止还可以。但是,一旦我试图集成到java文件中,我就会收到错误的请求响应。我现在有点不知所措。https://github.com/libetl/curl这就是我所说的转换curl代码。

这是我得到的错误。https响应代理{HTTP/1.1 400错误请求[日期:星期四,2021 23:21:424月22日格林尼治标准时间,内容类型:应用程序/json,内容长度: 189,连接:保持活力,Tracepak: 00-d3a39218eb8d091ffe3bf5cb474692ce-353a1a23da4e5dc4-01]响应实体代理{[内容类型:应用程序/json,内容长度: 189,分块:假]}}

 @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";
      
      }

共有1个答案

阙星渊
2023-03-14

你可以用curl处理一个进程对象,手工制作的方式,我对你使用的这个lib不太了解,但我不太了解,所以我想避免,你也可以用它得到一个输入流,并用来填充响应流:

String command = "curl -X POST https://your_url/path --data foo=bar"; 
Process process = Runtime.getRuntime().exec(command);
process.getInputStream();
 类似资料:
  • 问题内容: 首先,我已经看过几个文档,关于同一文档的stackoverflow问题。我在尝试运行命令时遇到了项目特定的问题: 从mac终端,我得到了所需的json格式数据。但是从Java代码运行相同的命令,控制台中出现Unauthorized 401错误。我的代码是: 我收到未经授权的401错误和一堆html标签。这似乎是一个重复性的问题,但我已经尝试了所有方法。我知道替代方法是使用http响应方

  • 如何让这个CURL命令在Zapier中按计划运行? Curl-请求POST\

  • 问题内容: 我如何在Java URLConnection中实现以下curl命令 提前致谢 问题答案: 使用URLConnection的派生类(即HttpURLConnection),您可以轻松地做到这一点。 对于

  • 我试图在GitLab ci管道中运行curl--retry命令,但在管道中失败了,但当我尝试在其他地方运行它时,它工作正常。 我正在尝试检查我的url是否已启动,这将一直运行到我的url已启动,然后运行脚本的其余部分以配置我的应用程序 curl-Is-k--重试50--重试延迟0--重试https://{URL}-vvv 正在尝试127.0.1.1:8443 TCP_节点延迟设置 已连接到{url

  • 问题内容: 我是初学者,请原谅我的长期问题。我需要访问以获得某个文件上的责任详细信息,因为到目前为止,github API版本3中 没有责任。我可以获取以下查询的输出,该查询在此处运行 在终端中运行以下命令 并在Java内部运行相同的命令,如下所示 还有其他方法可以在不运行curl命令的情况下获得相同的输出,因为在内部运行命令不是一种好习惯(根据我的观点)。提前致谢 使用httpClient代码更

  • 我不熟悉Curl和Cacerts的世界,在连接到服务器时遇到了一个问题。基本上,我需要测试从一台机器到另一台机器的https连接。我有一个URL,我需要从机器a(linux机器)连接到它。我在命令提示符下尝试了这个方法 并得到以下结果: 在浏览互联网上的一些文章时,我这样做了: 并得到了一些响应,包括服务器证书(在)。 接下来我该怎么办。我想,我只需将文本复制粘贴到