当前位置: 首页 > 面试题库 >

如何将带有“ -i --upload-file”的curl调用转换为Java Unirest或任何其他http请求?

焦正德
2023-03-14
问题内容

下面的示例使用cURL上传包含为二进制文件的图像文件。

curl -i --upload-file /path/to/image.png --header "Authorization: Token" 'https://url....'

它工作正常。我需要从我的Java应用程序发出此请求。

我尝试了下一个代码

URL image_url = Thread.currentThread().getContextClassLoader().getResource("jobs_image.jpg");
String path = image_url.getFile();
HttpResponse<String> response = Unirest.post(uploadUrl)
  .header("cache-control", "no-cache")
  .header("X-Restli-Protocol-Version", "2.0.0")
  .header("Authorization", "Bearer " + token + "")
  .field("file", new File(path))
  .asString();

但是,它返回状态400错误的请求。有什么方法可以从Java调用此类请求

这是来自LinkedIn v2 API的请求:https
://docs.microsoft.com/zh-cn/linkedin/consumer/integrations/self-serv/share-on-
linkedin?context =
linkedin/consumer/context#upload- image
-二进制文件


问题答案:

下面的方法将图像上传到linkedIn

参考:https : //docs.microsoft.com/zh-
cn/linkedin/marketing/integrations/community-management/shares/vector-asset-
api#upload-the-image

private void uploadMedia(String uploadUrl,String accessToken) throws IOException {           
           RestTemplate restTemplate = new RestTemplate();
           HttpHeaders headers = new HttpHeaders();
           headers.add("Authorization","Bearer "+accessToken);
           byte[] fileContents = Files.readAllBytes(new 
           File("path_to_local_file").toPath());
           HttpEntity<byte[]> entity = new HttpEntity<>(fileContents, headers);
           restTemplate.exchange(uploadUrl,HttpMethod.PUT, entity, String.class);
      }


 类似资料:
  • 我试着遵循指南,但它根本没有提到任何关于身份验证(也没有XML)的内容。 https://spring.io/guides/gs/consource-rest/#_make_the_application_executable

  • 问题内容: 我有以下CURL请求,谁能请我确认subesquest HTTP请求是什么? 会是这样吗? 任何人都可以帮助我将上述curl请求完全转换为httpreq。 提前致谢。 苏维 问题答案: 有很多方法可以实现这一目标。在我看来,以下一项是最简单的,同意它不是很灵活,但是可以工作。

  • 我有邮递员要求W/C工作良好。 当我单击Send按钮时,它工作得很好,它返回正确的资源,然而,当我试图在PHP中使用GuzzleHTTP/Guzzle时,它返回422或400 我的代码 但返回422 致命错误:未捕获的GUZZLEHTTP\Exception\ClientException:客户端错误:导致响应:{“status”:422,“title”:“缺少或不正确的必需字段”,“type”:

  • 我有下面的curl,它成功地将我登录到一个网站。它返回一个302和一个cookie: 不幸的是,我必须插入真正的用户名 我想使用将其转换为Python3代码。所以我做了这个代码: 但是我从Python3代码(200)得到的响应与我从Curl(302)得到的响应不匹配。这意味着目标服务器感觉到两个请求之间的差异。 如何将curl转换为Python3,它发送完全相同的底层HTTP请求?

  • 我有邮递员的API。我想创建一个CURL请求,并用它得到适当的响应。这是我的邮递员API。 我成功地用它得到了这个回应。 我使用了curl_error,它给出了以下错误。 Curl错误:SSL证书问题:证书链中的自签名证书

  • 我正在尝试将curl中的以下工作请求转换为python请求(使用请求http://docs.python-requests.org/en/v0.10.7/). (请注意,我使用了一个假url,但该命令确实适用于真实url) 接收端(在烧瓶中运行)执行以下操作: 在curl(7.30)中,在Mac OS X(10.9)上运行,上面的命令正确返回使用标记查询过滤的json列表。 我的python脚本如