当前位置:首页 > 开发 > 编程语言 > Http > 正文

java发送http的get、post请求

发表于: 2015-04-17   作者:zccst   来源:转载   浏览:
摘要: 作者:zccst Ajax请求跨域的理解(端口,域名,主机) 今天同事遇到个奇怪的问题,就是他用JQ的AJAX请求一个URL的时候,通过FIREBUG看到的返回状态时200,但是没有数据,而且那个请求时红色 的,就像返回回来的是404一样。我帮他调了很久,最后看到他浏览器的访问地址是www.xxx.com/xxx,而他AJAX请求的是 www.xxx.com:8080/xxx,端口不一
作者:zccst

Ajax请求跨域的理解(端口,域名,主机)

今天同事遇到个奇怪的问题,就是他用JQ的AJAX请求一个URL的时候,通过FIREBUG看到的返回状态时200,但是没有数据,而且那个请求时红色 的,就像返回回来的是404一样。我帮他调了很久,最后看到他浏览器的访问地址是www.xxx.com/xxx,而他AJAX请求的是 www.xxx.com:8080/xxx,端口不一致。我突然想到肯定是AJAX跨域,不过这个可是一个服务器,只是不同的端口而已。然后让他吧 8080去掉,就可以了。


经过几次测试,发现浏览器对AJAX跨域限制很严格,我有一个主机,IP为A,A上80端口,81端口都有服务,然后IP为A的主机上绑定了两个域 名,www.test.com 和www.test1.com,通过这两个IP都能方位到80的服务,但是如果在www.test.com上用AJAX请求www.test1.com的 URL,就不行。就属于跨域。同样,www.test.com上访问www.test.com:81的请求也是跨域。虽然是同一个主机,同一个IP,但是 只要域名不一致,甚至端口不一致,都属于跨域。


那么,如果一个主机上不同端口上部署有不同的服务,怎么用AJAX去调用呢?我的解决办法是通过中间层转发请求。比如www.test.com上要用 AJAX请求81的服务,就在80上写一个功能,请求80,把要传递的参数传给80,在由80的服务器端去发请求,将请求到的数据返回给AJAX.





java发送http的get、post请求
http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html

返回函数的编码是一个问题
解决办法:return ApiResponse.successResponse(str);
@RequestMapping(value = "/test", method = RequestMethod.GET)
	@ResponseStatus(HttpStatus.OK)
	@ResponseBody
	public ApiResponse test(HttpServletRequest request) {
		String str=AppController.sendGet("http://IP:22200/public-server/news/search/gallery", "query=angelababy&from=webapp");
		System.out.println(str);
		return ApiResponse.successResponse(str);
	}


public static String sendGet(String url, String param) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "application/json, text/javascript, */*; q=0.01");
            connection.setRequestProperty("content-type", "text/plain; charset=utf-8");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }

java发送http的get、post请求

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
服务器端代码 [java] package org.xiazdong.servlet; import java.io.IOException; import javax.se
HTTP的请求详解在我的博客中已经讲解过: http://blog.csdn.net/xiazdong/article/details/7215296
HTTP的请求详解在我的博客中已经讲解过: http://blog.csdn.net/xiazdong/article/details/7215296
HTTP的请求详解在我的博客中已经讲解过: http://blog.csdn.net/xiazdong/article/details/7215296
一、HTTP Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。U
1、发送POST请求注意事项   POST请求必须设置ContentType请求头的值为application/x-www.form-enc
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提
简化的说: WebService = HTTP 协议 + XML Rest = HTTP 协议 + Json 各种 API = HTTP 协议 + XML /
转载请注明出处:http://blog.csdn.net/forwardyzk/article/details/45364463 我们在开发的使用,直
package com.liuyu.test; import java.io.BufferedReader; import java.io.IOException; import jav
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号