Tag: http

如何在eclipse中设置http代理?

我有需要进行出站http连接的代码。 但是,我支持代理。 我已经看到了如何设置代理参数的示例,但没有一个允许我指定我的用户名和密码。 有没有人有一个例子来帮助我?

拦截服务器java中的HTTP请求

我需要实现类似filter或侦听器的东西,它拦截HTTP请求并为各种目的检索HTTP头。 我使用Java,Jboss应用服务器和Web服务。 我希望在Web服务调用之前执行此过滤系统 – 考虑方面但他们不保存HTTP相关的东西。 过滤后,应执行服务调用。 Jax-WS处理程序对我来说不起作用,因为它们只保存SOAP有效负载。 有任何想法吗? 提前致谢。

如何使用HttpComponents发布数组参数

我想用Apache http-components(4.1.2)执行此命令 curl –data “strings[]=testOne&string-keys[]=test.one&strings[]=testTwo&string-keys[]=test.two&project=Test” https://api.foo.com/1/string/input-bulk 目标api需要字符串和字符串键参数作为数组 ,这意味着为每个参数重复字符串[]和字符串键[] 。 这个curl命令工作正常,但是使用Http组件,而我得到了完全相同的参数。 也许我做错了什么。 List params = new ArrayList(); params.add( new BasicNameValuePair( “project”, PROJECT_NAME ) ); for ( Entry entry : newEntries ) { params.add( new BasicNameValuePair( “string-keys[]”, entry.getKey() ) ); params.add( new BasicNameValuePair( “strings[]”, entry.getValue() ) ); params.add( new BasicNameValuePair( “context[]”, “” ) ); } URI uri […]

Android无效使用SingleClientConnManager:仍然分配了连接

请注意,此问题对于我的HTTP呼叫是唯一的。 我环顾四周,有些人说httpResponse.getEntity().consumeContent(); 但我可以使用它,因为我需要提供返回数据。 我把我的API doInBackground ….称为return api.post(“analytics”, params); 如何将无效的SingleClientConnManager修复到此httppost中: public String post(String url, List params) { HttpPost request = new HttpPost(BASEURL + url); HttpResponse response; try { request.setEntity(new UrlEncodedFormEntity(params, “UTF-8”)); response = client.execute(request); HttpEntity entity = response.getEntity(); return EntityUtils.toString(entity); } catch(ClientProtocolException e) { return e.toString(); } catch(IOException e) { return e.toString(); } }//end post 这是我得到的错误: […]

客户端和服务器之间的安全连接

我正在开发一个服务器组件,它将为嵌入式客户端提供服务,这也是我的控制。 现在一切都是测试版,安全性如下: 客户端通过https发送用户名/密码。 服务器返回访问令牌。 客户端通过自定义标头中的访问令牌通过http进行进一步请求。 这对于演示来说很好,但它有一些问题需要在发布之前修复: 任何人都可以复制login请求,重新发送并获取访问令牌。 有些用户回答说这不是问题,因为它超过了https。 我的错。 任何人都可以通过检查请求标头来监听并获取访问密钥。 我可以想到一个对称的密钥加密,带有时间戳,所以我可以拒绝重复的请求,但我想知道这个场景是否有一些众所周知的良好实践(这似乎很常见)。 非常感谢您的洞察力。 PS:我正在使用Java作为服务器而客户端是用C ++编写的,以防万一。

使用Java发送HTTP请求GET / POST以形成?

所以我有这段代码,我得到它的工作,现在它基本上允许我发送httppost并获取几乎任何我想要的外部网站的请求除非元素不包含name属性。 这是一个例子: 这是Java代码: public static String sendPostRequest(String url) { StringBuffer sb = null; try { String data = URLEncoder.encode(“user”, “UTF-8”) + “=” + URLEncoder.encode(“myUserName”, “UTF-8”) + “&” + URLEncoder.encode(“submit”, “UTF-8”) + “=” + URLEncoder.encode(“Submit”, “UTF-8”); URL requestUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) requestUrl .openConnection(); conn.setDoOutput(true); conn.setRequestMethod(“GET”); OutputStreamWriter osw = new OutputStreamWriter( conn.getOutputStream()); osw.write(data); […]

通过Java中的Socket处理POST请求

我正在尝试使用Socket处理Java中的简单POST请求。 我可以收到请求标头并回答请求没有任何问题,但我当然无法得到请求的正文。 我在某处读到了我需要打开第二个InputStream来实现这个目标,但这对我来说并没有多大意义。 您有关于如何获取请求正文的任何​​提示吗? 这是我基本上用来获取标题: BufferedReader in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream())); char[] inputBuffer = new char[INPUT_BUFFER_LENGTH]; int inputMessageLength = in.read(inputBuffer, 0, INPUT_BUFFER_LENGTH); String inputMessage = new String(inputBuffer, 0, inputMessageLength); 所以,我得到的信息是这样的: POST / HTTP/1.1 User-Agent: Java/1.8.0_45 Host: localhost:5555 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 但我无法获取POST请求的参数。 编辑: 所以事实certificate我只有INPUT_BUFFER_LENGTH足够高(我知道,对我感到羞耻)。 因此,当我工作时,我将我的ServerSocket更改为SSLServerSocket并再次尝试从Java发送带有HttpsUrlConnection的请求,现在我又遇到了同样的问题(已经检查过缓冲区),得到这样的结果: POST / HTTP/1.1 User-Agent: Java/1.8.0_45 […]

在HTTPServlet请求中编码UTF-8

这可能看起来像一个已经解决的问题,但事实并非如此,因为我已经完成了所有与UTF-8相关的问题,但没有一个解决方案对我有所帮助。 我正在使用JSON简单库向包含JSON对象的java servlet发送http请求。 我在Tomcat xml文件中添加了UTF-8编码 我的HTML页面支持UTF-8编码 我的数据库和我的所有表都是UTF-8编码的 我使用系统变量将JVM的默认编码更改为UTF-8(是的!这是我多么绝望) 这是我的调度员function: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(“UTF-8”); AjaxParser cr = AjaxParser.ClientRequestFactory(); ClientRequest msg = cr.ParseClientAjax(request); HandleRequest HR = new HandleRequest(); HandleRequestStatus HRS = HR.HandleMessage(msg); AjaxResponseGenerator ARG = new AjaxResponseGenerator(); JSONObject jsonObj = ARG.HandleResponse(HRS); response.setCharacterEncoding(“UTF-8”); response.setContentType(“application/json”); PrintWriter out = response.getWriter(); System.out.println(jsonObj);// write the […]

Java URL – 谷歌翻译请求返回403错误?

我正在创建一个Java控制台应用程序,需要向Google Translate发送HTTP请求以从上述站点获取翻译。 我的问题是,当我尝试使用openStream()尝试从有效的URL读取时,我收到403错误。 使用Translator t = new Translator();创建此Translator类的实例Translator t = new Translator(); 并调用t.translate(“en”, “ja”, “cheese”); 例如,应该返回程序在http://translate.google.com/#en|ja|che页面上找到的翻译,但它会捕获IOException并返回: http://translate.google.com/#en|ja|cheese Server returned HTTP response code: 403 for URL: http://translate.google.com/#en|ja|cheese 创建有效Google翻译url的任何其他参数也会出现类似的错误。 403错误显然意味着我被拒绝许可。 这就是我想知道的。 为什么我无法访问此页面,以及我必须执行哪些操作才能访问此页面? 我在我的网络浏览器中访问了该网站,并手动输入了我的程序尝试访问的地址,但它有效; 我不确定为什么我的程序无法访问该页面? 将地址键入或复制/粘贴到我的FireFox导航栏中可以正常工作; 看,如果这是正确的,那么该网站可能希望我通过另一个页面上的链接访问该页面? 我怎么可能这样做 ,如果这是我必须做的? 这是代码,因为我认为它可能会有所帮助..当我尝试从translationURL.openStream()返回的InputStream中的InputStreamReader创建BufferedReader时,似乎抛出exception: import java.io.*; import java.net.*; public class Translator { private final String googleTranslate = “http://translate.google.com/#”; public String translate( String […]

Spring Integration – 如何使用http outbound-gateway发送POST参数

我正在尝试使用Spring Integration和http outbound-gateway组合一个非常简单的HTTP POST示例。 我需要能够发送带有一些POST参数的HTTP POST消息,就像我使用curl : $ curl -d ‘fName=Fred&sName=Bloggs’ http://localhost 如果我将一个简单的String作为参数发送到接口方法,我可以使它工作(没有POST参数),但是我需要发送一个pojo,其中pojo的每个属性都成为POST参数。 我有以下SI配置: 我的RequestGateway界面如下所示: public interface RequestGateway { String echo(Pojo request); } 我的Pojo类看起来像这样: public class Pojo { private String fName; private String sName; public Pojo(String fName, String sName) { this.fName = fName; this.sName = sName; } …. getters and setters } 而我的全class学生就是这样的: public class […]