文档章节

HttpURLConnection访问Webapi代码

感觉太煽情
 感觉太煽情
发布于 2015/08/27 14:37
字数 369
阅读 598
收藏 1

虽然代码差不多,但是稍微改了些,嘻嘻......非常感谢原帖主。

下面是我改后的代码。(嘻嘻,虽然改后变化不大)

private static String URL = "http://xxx/api/v1/video/Register";
public void regist(){
	Map<String, Object> requestParamsMap = new HashMap<String, Object>();  
        requestParamsMap.put("username", "test11");  
        requestParamsMap.put("password", "111");  
        PrintWriter printWriter = null;  
        HttpURLConnection conn = null;
        BufferedReader bufferedReader = null;  
        StringBuffer responseResult = new StringBuffer();  
        StringBuffer params = new StringBuffer();  
        // 组织请求参数  
        Iterator it = requestParamsMap.entrySet().iterator();  
        while (it.hasNext()) {  
            Map.Entry element = (Map.Entry) it.next();  
            params.append(element.getKey());  
            params.append("=");  
            params.append(element.getValue());  
            params.append("&");  
        }  
        if (params.length() > 0) {  
            params.deleteCharAt(params.length() - 1);  
        }  
		try {
	        String newUrl = URL +"?"+ params;   //初次接触这东西,就直接拼接在地址上了
			URL url = new URL(newUrl);
	        conn = (HttpURLConnection) url.openConnection();
	        conn.setRequestMethod("POST");// 提交模式
	        conn.setRequestProperty("Content-Type", "plain/text; charset=UTF-8");  
	        
	        // 设置通用的请求属性  
            conn.setRequestProperty("accept", "*/*");  
            conn.setRequestProperty("connection", "Keep-Alive");  
            // 发送POST请求必须设置如下两行  
            conn.setDoOutput(true);  
            conn.setDoInput(true);
            conn.connect();
            int responseCode = conn.getResponseCode();  
            if (responseCode != 200) {  
            	System.out.println("Not Success");
            } else {  
            	System.out.println("Success");
            }  
            // 定义BufferedReader输入流来读取URL的ResponseData  
            bufferedReader = new BufferedReader(new InputStreamReader(  
                    conn.getInputStream()));  
            String line;  
            while ((line = bufferedReader.readLine()) != null) {  
                responseResult.append("/n").append(line);  
            }  
			/* 将Response显示于Dialog */
			showDialog("注册成功" + responseResult.toString().trim());
			/* 关闭DataOutputStream */
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			conn.disconnect();  
            try {  
                if (printWriter != null) {  
                    printWriter.close();  
                }  
                if (bufferedReader != null) {  
                    bufferedReader.close();  
                }  
            } catch (IOException ex) {  
                ex.printStackTrace();  
            } 
		}
	}

本来不想直接把参数拼接在地址上的,但使用OutputStream输入流老是报404,偷懒直接拼上了。

希望能帮助到别人吧。

© 著作权归作者所有

感觉太煽情
粉丝 43
博文 102
码字总数 25839
作品 0
临沂
程序员
私信 提问
加载中

评论(2)

感觉太煽情
感觉太煽情 博主

引用来自“hyposcofield”的评论

亲,当请求参数(即你那里边的params)长度为91位时,就接受不到参数多一位少一位都能接到,遇到过这种情况吗??
你的意思是说,参数不能为91位么?我这边没遇到过这种情况
hyposcofield
hyposcofield
亲,当请求参数(即你那里边的params)长度为91位时,就接受不到参数多一位少一位都能接到,遇到过这种情况吗??
webAPI接收不到HttpURLConnection以POST方式请求的参数

HttpURLConnection以POST方式请求的参数为91位时,webAPI就接收不到参数,多一位或者少一位都可以,这是怎么回事啊,求大神帮忙啊。小弟新手不太懂这些。代码如下:...

hyposcofield
2015/09/24
3.5K
0
ASP.Net中关于WebAPI与Ajax进行跨域数据交互时Cookies数据的传递

本文主要介绍了ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据传递的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧 前言 最近公司项目进行架构调整,由原来的三层架构改进升...

科技小毛
2017/10/12
0
0
完全抽离WebAPi之特殊需求返回HTML、Css、JS、Image

前言 今天我们来实现一个特殊的需求,这个需求说来也不过分,不过有点违背WebAPi的真实用途,WebAPi不过是作为传输数据而用,若非在项目开发中断不可想到还要实现一个页面来实时显示列表并进...

jeffcky
2016/09/01
0
0
IdnentiyServer-使用客户端凭据访问API

情景如下:一个客户端要访问一个api,不需要用户登录,但是又不想直接暴露api给外部使用,这时可以使用identityserver添加访问权限。 客户端通过clientid和secrect访问identitserver的Token...

ldybyz
2018/10/09
0
0
hijk 0.2.2 发布,自动化 JavaScript Web 开发包

hijk 是一个自动化的WebAPI开发包,全程使用JavaScript语言,只需要写一个标准JavaScript函数,复制到 js/目录下,就会自动加载为 WebAPI, 可以通过http提供网络服务,无需编译,修改后自动加...

iBoxDB
2014/07/01
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
10
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
8
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
11
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部