Tag: http

Jetty HTTP日志记录

我想让Jetty记录所有HTTP请求(以及正文)和响应。 这是Jetty原生支持的吗? 理想情况下,它会记录到我现有的log4j日志文件中。 我正在运行Jetty 6。

Java中的Http POST(带文件上传)

我想要做的是从Java应用程序提交Web表单。 我需要填写的表格位于: http : //cando-dna-origami.org/ 提交表单后,服务器会向给出的电子邮件地址发送一封确认电子邮件,目前我只是手工检查。 我已经尝试手动填写表单,电子邮件发送正常。 (还应注意,当表单填写不正确时,页面只刷新并且不提供任何反馈)。 我之前从未做过任何关于http的事情,但我环顾了一会儿,并提出了以下代码,它应该向服务器发送一个POST请求: String data = “name=M+V&affiliation=Company&email=” + URLEncoder.encode(“mv@gmail.com”, “UTF-8”) + “&axialRise=0.34&helixDiameter=2.25&axialStiffness=1100&bendingStiffness=230” + “&torsionalStiffness=460&nickStiffness=0.01&resolution=course&jsonUpload=” + URLEncoder.encode(“C:/Users/Marjie/Downloads/twisted_DNA_bundles/monotwist.L1.v1.json”, “UTF-8”) + “&type=square”; URL page = new URL(“http://cando-dna-origami.org/”); HttpURLConnection con = (HttpURLConnection) page.openConnection(); con.setDoOutput(true); con.setRequestMethod(“POST”); con.connect(); OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream()); out.write(data); out.flush(); System.out.println(con.getResponseCode()); System.out.println(con.getResponseMessage()); out.close(); con.disconnect(); 然而,当它运行时似乎没有做任何事情 – 也就是说,我没有收到任何电子邮件,虽然程序确实向System.out打印“200 OK”,这似乎表明从服务器收到了一些东西虽然我不确定它究竟意味着什么。 我认为问题可能出在文件上传中,因为我不确定该数据类型是否需要不同的格式。 这是使用Java发送POST请求的正确方法吗? […]

Java HttpRequest JSON和响应处理

我已经看过其他几个问题,但我仍然不完全理解这一点。 我想将JSON字符串POST到远程地址,然后从JSON响应中检索值。 我正在使用Apache的Java库。 public HttpResponse http(String url, String body) throws IOException { try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { HttpPost request = new HttpPost(url); StringEntity params = new StringEntity(body); request.addHeader(“content-type”, “application/json”); request.setEntity(params); //httpClient.execute(request); HttpResponse result = httpClient.execute(request); } catch (IOException ex) { } return null; } 作为正文,我会通过以下(例子): {“example”:1,”fr”:”lol”} 我完全不知道如何从响应中检索JSON值。

如何在HttpClient的请求中添加,设置和获取Header?

在我的应用程序中,我需要在请求中设置标题,我需要在控制台中打印标题值…所以请举例说明HttpClient或在我的代码中编辑它… 我的代码是, import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class SimpleHttpPut { public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(“http://http://localhost:8089/CustomerChatSwing/JoinAction”); try { List nameValuePairs = new ArrayList(1); nameValuePairs.add(new BasicNameValuePair(“userId”, […]

与Netty和NIO高度并发的HTTP

我正在使用示例Netty HTTP客户端代码 ,以便在并发的线程环境中发出http请求。 但是,我的系统在相当低的吞吐量下完全破坏(有一些例外)。 在几乎伪代码中: ClientBootstrap bootstrap = new ClientBootstrap(new NioClientSocketChannelFactory()) bootstrap.setPipelineFactory(new HttpClientPipelineFactory()); ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port)); Channel channel = future.awaitUninterruptibly().getChannel(); HttpRequest request = new DefaultHttpRequest(); channel.write(request); 在示例中,为了发出请求,我创建了一个ClientBootstrap,并从那里(通过一些箍)一个Channel来编写HTTPRequest。 这一切都有效,也很好。 但是,在同时发生的情况下,每个请求是否应该通过相同的环节? 我认为这就是我现在正在打破的事情。 我应该以完全不同的方式重用连接或构建我的客户端吗? 另外:我在Clojure中这样做,如果这有任何区别的话。

使用Spring-WS客户端动态设置自定义HTTP标头

在使用Spring-WS时,如何在客户端动态设置自定义HTTP头(而不是SOAP头)?

Spring MVC Controller:“返回前进”,“返回重定向”和“返回jsp文件”之间的区别是什么

我不明白我应该用什么。 我有两个页面–intro.jsp(1)和booksList.jsp(2)。 对于每个页面,我创建了一个Controller类。 第一页有按钮,打开第二页: 第一个问题是:我不确定这个按钮的正确性。 它运作良好,但按下此按钮后我有问号。 第二个问题是:当我按下该按钮时,调用带有下一个注释的方法(第二页的控制器): @RequestMapping(value = “/books”) @Controller public class BooksListController { @RequestMapping public String booksList() { return “jsp/books/booksList”; } } 我应该通过这种方法返回什么? 换句话说,我如何从第一页跳到第二页? return “redirect:/books”; returns http://localhost:8080/books? return “jsp/books/booksList”; returns http://localhost:8080/request-list? return “forward:/books”; returns http://localhost:8080/request-list? 我看到结果是一样的:所有这些字符串给了我相同的页面(第2页打开)。 在哪些情况下我应该使用“重定向”,“前进”,“page.jsp”? 我也读过Post / Redirect / Get文章 。 POST方法处理后我是否必须使用“重定向”?

http获取身体请求

我知道你不应该发送带有正文的HTTP GET请求,但是ceilometer web api迫使我这样做。 我正在开发一个ceilometer scala客户端,所以我需要一个scala / java方法来生成一个获取请求。 到目前为止,我尝试使用beeClient( http://www.bigbeeconsultants.co.uk )和使用httpConnection的普通Java但我收到404错误。 在curl中,我可以通过这种方式实现结果: curl -X GET -H “X-Auth-Token: ..long long token here..” -H “Content-Type: application/json” -d ‘{“q”: [{“field”: “resource”, “op”: “eq”, “value”: “gdfsf”}]}’ http://137.204.57.150:8777/v2/meters/ 这是我使用java HttpURLConnection的scala代码: import java.io._ import java.net._ val token = “myToken” val url = new URL(“http://137.204.57.150:8777/v2/meters/”) val body = “{\”q\”: [{\”field\”: \”resource\”, \”op\”: […]

如何使用AngularJS $ http发送multipart / form-data

我正在开发一个使用不同服务rest的图形界面(用java编写)。 我必须打电话给这样的服务: @PUT @Path(“nomeServizio”) public Response nomeServizio(final FormDataMultiPart multiPart) { ……} 来电服务: service: function (data) { return $http({ url: PATH_REST_SERVICES + ‘/nomeServizio’, headers: {“Content-Type”: “multipart/form-data”}, data: data, method: “PUT” }); } 当我从Angularjs服务文件请求时,如果服务具有Content-Type = multipart / form-data,我得到:错误400(错误请求) 如果服务具有Content-Type =“application / x-www-form-urlencoded; charset = utf-8”或“application / json; charset = utf-8”,则会收到415(不支持的媒体类型)错误“申请/表格数据”。 我正在开发javascript和html5的前端,我没有找到任何可以帮助我的网络,因为在JavaScript中不存在FormDataMultiPart对象。 我试图格式化数据以多种方式发送,但它总是返回400或415。 我应该如何格式化数据以发送到其余的呼叫? 内容类型应该如何在标题中?

处理HTTP ContentEncoding“deflate”

应该使用什么InputStream类型来处理将HTTP Content-Encoding设置为deflate的 URLConnection流? 对于gzip或zip的Content-Encoding,我使用GZIPInputStream,没问题。 对于“deflate”的Content-Encoding,我尝试过使用InflaterInputStream和DeflaterInputStream,但是我得到了 java.util.zip.ZipException:java.util.zip.InflaterInputStream.read中的未知压缩方法(InflaterInputStream.java:147) 我的理解是“deflate”编码是指Zlib压缩,根据文档,这应该由InflaterInputStream处理。