Tag: curl

将Curl转换为Java等效项

我第一次使用New Relic REST API ,我有一个curl命令: curl -X GET ‘https://api.newrelic.com/v2/applications/appid/metrics/data.json’ \ -H ‘X-Api-Key:myApiKey’ -i \ -d ‘names[]=EndUser/WebTransaction/WebTransaction/JSP/index.jsp’ 我想在java servlet中发送此命令并从响应中获取JSON对象以备解析,什么是最佳解决方案? HttpURLConnection的? Apache httpclient? 我已经尝试了一些不同的解决方案,但到目前为止没有任何工作,我能找到的大多数示例都使用了折旧的DefaultHttpClient 以下是我尝试之一的示例: String url = “https://api.newrelic.com/v2/applications.json”; HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection(); conn.setRequestProperty(“Content-Type”, “application/json”); conn.setRequestProperty(“X-Api-Key”, “myApiKey”); conn.setRequestMethod(“GET”); JSONObject names =new JSONObject(); try { names.put(“names[]=”, “EndUser/WebTransaction/WebTransaction/JSP/index.jsp”); } catch (JSONException e) { e.printStackTrace(); } OutputStreamWriter wr= […]

KIE Workbench Integration响应401

我正在尝试使用Drools 6.1.FINAL将我的KIE Workbench 6.1.FINAL部署与一个简单的应用程序集成。 我使用以下代码: String url = “http://localhost:8088/workbench/maven2/com/sep/test/myProject/1.0/myProject-1.0.jar”; KieServices ks = KieServices.Factory.get(); UrlResource urlResource = (UrlResource) ks.getResources().newUrlResource(url); urlResource.setBasicAuthentication(“enabled”); urlResource.setUsername(“admin”); urlResource.setPassword(“admin”); try { InputStream is = urlResource.getInputStream(); KieModule kModule = ks.getRepository().addKieModule(ks.getResources().newInputStreamResource(is)); kieContainer = ks.newKieContainer(kModule.getReleaseId()); kieContainer.newStatelessKieSession(); scanner = ks.newKieScanner(kieContainer); } catch(Exception e) { System.out.println(“Exception thrown while constructing InputStream”); System.out.println(e.getMessage()); } 每次运行此代码时,我都会看到以下输出: Exception thrown while building InputStream […]

将授权的curl -u post请求与JSON数据转换为RestTemplate等效项

我正在使用github api使用curl命令创建存储库,如下所示,它工作正常。 curl -i -u “username:password” -d ‘{ “name”: “TestSystem”, “auto_init”: true, “private”: true, “gitignore_template”: “nanoc” }’ https://github.host.com/api/v3/orgs/Tester/repos 现在我需要通过HttpClient执行相同的上面的url,我在我的项目中使用RestTemplate 。 我之前使用过RestTemplate ,我知道如何执行简单的url但不知道如何使用RestTemplate将上述JSON数据发布到我的url – RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); // Create a multimap to hold the named parameters MultiValueMap parameters = new LinkedMultiValueMap(); parameters.add(“username”, username); parameters.add(“password”, password); // Create the […]

JSch是否支持SOCKS5代理?

我试图通过SOCKS5代理将我的Java应用程序连接到带有库JSch的SFTP服务器。 我的本地DNS无法解析主机名。 因此,应该在Socks Proxy上进行查找。 在cURL中可以通过socks5h或–socks5-hostname参数实现。 这个选项在JSch中可用吗?

如何将curl -X post翻译成java

我试图将curl命令转换为Java(使用Apache HttpClient 4.x): export APPLICATION_ID=SOME_ID export REST_API_KEY=SOME_KEY curl -i -X POST \ -H “X-Parse-Application-Id: ${APPLICATION_ID}” \ -H “X-Parse-REST-API-Key: ${REST_API_KEY}” \ -H “Content-Type: image/png” \ –data-binary @/Users/thomas/Desktop/greep-small.png \ https://api.parse.com/1/files/greep.png 但是我收到以下错误:{“error”:“unauthorized”}。 这就是我的java代码: DefaultHttpClient httpclient = new DefaultHttpClient(); HttpHost targetHost = new HttpHost(“localhost”, 80, “http”); httpclient.getCredentialsProvider().setCredentials( new AuthScope(targetHost.getHostName(), targetHost.getPort()), new UsernamePasswordCredentials(“username”, “password”)); HttpPost httpPost = new HttpPost(“https://api.parse.com/1/files/greep.png”); System.out.println(“executing […]

使用processbuilder从java执行curl

我正在java中编写测试程序来测试我与django中的restfull api的连接(精确地说是djangorestframework)。 其中一个选择是用curl测试api。 从shell运行curl命令它工作正常:例如: curl –show-error –request GET –header ‘Accept: application/json’ –user “user:pwd” http://127.0.0.1:8000/api/v1/ 这将以json格式很好地返回api根URL和helptext。 现在,当我尝试使用ProcessBuilder从java调用相同的内容时,我得到了这样的答案: {“detail”: “You do not have permission to access this resource. You may need to login or otherwise authenticate the request.”} 我使用的java代码是: ProcessBuilder p=new ProcessBuilder(“curl”,”–show-error”, “–request”,”GET”, “–header”,”‘Accept: application/json'”, “–user”,”\”” + userName + “:” + password + “\””, getApiRootUrlString()); final Process […]

Python的urllib2.urlopen()挂起了与Java Restlet服务器的本地连接

我正在尝试从python连接到本地运行的Restlet服务器,但连接无限挂起(或者如果我设置超时则超时)。 import urllib2 handle = urllib2.urlopen(“http://localhost:8182/contact/123”) # hangs 如果我使用shell中的curl打开上面的URL,结果会很快返回。 如果我使用urllib2打开另一个本地服务(例如端口8000上的Django Web服务器),urllib2工作正常。 我试过禁用防火墙(我在OS X上这样做)。 我已经尝试将localhost更改为127.0.0.1。 除了用户代理之外,来自Restlet的curl和urllib2连接的日志显示相同。 我的解决方法是通过subprocess调用curl ,但我宁愿理解为什么这会失败。 以下是我的Restlet资源的外观: public class ContactResource extends ServerResource { @Get public String represent() throws Exception { return “”; } //…. } 如果您想要更多信息/代码,请告诉我

将PayPal curl请求转换为Java中的http请求

在PayPal网站上,所有示例调用都是使用curl完成的。 在Linux下使用CURL很容易重复,但我想使用Java来进行这些调用。 例如,假设有电话: curl -v https://api.sandbox.paypal.com/v1/payments/payment \ -H ‘Content-Type: application/json’ \ -H ‘Authorization: Bearer ‘ \ -d ‘{ “intent”:”sale”, “redirect_urls”:{ “return_url”:”http://example.com/your_redirect_url.html”, “cancel_url”:”http://example.com/your_cancel_url.html” }, “payer”:{ “payment_method”:”paypal” }, “transactions”:[ { “amount”:{ “total”:”7.47″, “currency”:”USD” } } ] }’ 假设我具有必须设置的的值,我如何将之前的字符串转换为http请求以使用Java和没有CURL从PayPal获得答案? 现在我对URL的HttpURLConnection执行了以下操作: private HttpURLConnection createPOSTHttpURLConnection(final URL url) throws IOException { final HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(“POST”); connection.setUseCaches(false); connection.setDoInput(true); connection.setDoOutput(true); […]

如何使用Apache HttpComponentst创建和发布多部分/混合http请求?

我正在使用Apache HttpComponents v4.3.3(maven httpclient和httpmime)。 我需要上传一个包含一些元数据的文件。 curl命令可以工作,如下所示。 curl -k -i -H“Content-Type:multipart / mixed”-X POST –form’field1 = val1′-form’field2 = val2′-form’file =@somefile.zip; type = application / zip’https://www.some.domain/ 我试过模仿这个curl的post如下。 HttpEntity entity = MultiPartEntityBuilder .create() .addPart(“field1”,new StringBody(“val1”,ContentType.TEXT_PLAIN)) .addPart(“field2”,new StringBody(“val2”,ContentType.TEXT_PLAIN)) .addPart(“file”, new FileBody(new File(“somefile.zip”), ContentType.create(“application/zip”)) .build(); HttpPost post = new HttpPost(“https://www.some.domain”); post.addHeader(“Content-Type”, “multipart/mixed”); 但是,在我使用HttpClient执行HttpPost之后,我得到以下exception(服务器代码也是在Jetty上运行的Java)。 org.apache.commons.fileupload.FileUploadException:请求被拒绝,因为没有找到多部分边界 当我添加一个曲线curl curl –trace – -k -i […]

使用预先签名的URL通过curl上传到s3(获得403)

我正在使用curl调用Java ReST API来检索URL。 然后,Java使用我的S3凭据生成用于S3上载的预签名URL,并在ReST回复中返回该URL。 Curl获取URL并使用它上传到S3,但S3返回403“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。” 这是我用来生成预签名URL的代码: public class S3Util { static final AmazonS3 s3 = new AmazonS3Client( new AWSCredentials() { @Override public String getAWSAccessKeyId() { return “XXXXXXX”; } @Override public String getAWSSecretKey() { return “XXXXXXXXXXXXXX”; } }); static final String BUCKET = “XXXXXXXXXXXXXXXXXXXXXXXXXXX”; static public URL getMediaChunkURL( MediaChunk mc, HttpMethod method ) { String key […]