Tag: http get

使用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中的Apache HttpClient,instream.toString = org.apache.http.conn.EofSensorInputStream

我正在使用Apache HttpClient获取一个页面,我想将服务器回复的http主体存储到一个字符串中,这样我就可以操作这个字符串并将其打印到控制台。 不幸的是,在运行此方法时,我收到此消息: 17:52:01,862 INFO Driver:53 – fetchPage STARTING 17:52:07,580 INFO Driver:73 – fetchPage ENDING, took 5716 org.apache.http.conn.EofSensorInputStream@5e0eb724 fetchPage类: public String fetchPage(String part){ log.info(“fetchPage STARTING”); long start = System.currentTimeMillis(); String reply; String searchurl = URL + URL_SEARCH_BASE + part + URL_SEARCH_TAIL; HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet(searchurl); HttpResponse response; try { […]

Play Framework:使用参数重定向到控制器方法

我正在使用PLAY framework 2.2.1构建一个Web应用程序,并尝试在地址栏中显示所请求站点的所有可用http get查询参数,甚至是未在请求中设置的那些参数。 如果未设置所有http get参数,我想使用默认值添加未设置参数并进行重定向。 我有一个可以通过GET请求的网站: GET /test controllers.Application.test(q:String, w:String ?= null, f:String ?= null, o:String ?= null) 这是我想在controllers.Application : public static Result test(String q, String w, String f, String o){ … // In case not all parameters where set if (reload == 1){ return redirect(controllers.Application.test(qDefault, wDefault, fDefault, oDefault)); } else { ok(…); } […]

为什么getSession()在后续请求中在短时间内返回相同的会话?

我一个接一个地发送$.getJSON (HTTP GET)请求(使用不同的数据)(假设我们有request1和request2)。 我可以在FF和Chrome的开发者工具中看到我有相同的cookie:JSESSIONID=FD0D502635EEB67E3D36203E26CBB59A标题字段。 在服务器端,我尝试获取会话: HttpSession session = request.getSession(); boolean isSessionNew = session.isNew(); String sessionId = session.getId(); String cookieFromRequestHeader = request.getHeader(“cookie”); 如果我为这两个请求打印这些变量, request1: isSessionNew:真 cookieFromRequestHeader:JSESSIONID = FD0D502635EEB67E3D36203E26CBB59A session.getId():9212B14094AB92D0F7F10EE21F593E52 请求2: isSessionNew:真 cookieFromRequestHeader:JSESSIONID = FD0D502635EEB67E3D36203E26CBB59A session.getId():E8734E413FA3D3FEBD4E38A7BF27BA58 如您所见,服务器在request.getSession()上清楚地为request2创建了一个新会话。 但为什么会这样呢? 它理论上应该是同步的,并为您提供与第一个请求(首先达到此代码)创建的会话相同的会话。 现在,为了确保会话创建已同步,我执行了以下操作: @Autowired private ServletContext servletContext; … synchronized (servletContext) { HttpSession session = request.getSession(); boolean isSessionNew = session.isNew(); String […]

如何通过OkHttp将查询参数添加到HTTP GET请求?

我使用的是最新的okhttp版本: okhttp-2.3.0.jar 如何在java中的okhttp中向GET请求添加查询参数? 我发现了一个关于android的相关问题 ,但这里没有答案!

httpClient.execute中的ClientProtocolException(httpget,responseHandler)

我使用以下代码从Web服务器请求xml: HttpClient httpclient = new DefaultHttpClient() try { HttpGet httpget = new HttpGet(“http://63.255.173.242/get_public_tbl.cgi?A=1”); ResponseHandler responseHandler = new BasicResponseHandler(); String responseBody = httpclient.execute(httpget, responseHandler); System.out.println(responseBody); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { httpclient.getConnectionManager().shutdown(); } 当我调用httpclient.execute(httpget,responseHandler)时,我得到一个clientProtocolException。 url在Web浏览器中工作正常,它返回xml,浏览器显示它。 任何想法为什么我会得到一个clientProtocolException但浏览器处理它就好了? 编辑1: 查看协议exception,详细消息是:“服务器无法响应有效的HTTP响应”。 我无法更改我正在访问的Web服务器。 有没有办法忽略这个并只是访问响应? 编辑2: 我发现服务器没有发回完整的标头。 有没有办法访问响应的内容,即使返回一个损坏的标题? 编辑3:我编辑的IP地址是我正在打的真实IP地址。 任何帮助将非常感激。