HttpURLConnection访问Webapi代码

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

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

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,偷懒直接拼上了。

希望能帮助到别人吧。

时间: 2024-10-22 00:38:47

HttpURLConnection访问Webapi代码的相关文章

浏览器跨域访问WebApi

webapi地址:wapapi.ebcbuy.com web地址:wapweb.ebcbuy.com 在默认情况下这两个域名属于两个不同的域,他们之间的交互存在跨域的问题,但因为他们都同属于一个二级域名下,所以通过简单的设置就能实现跨域行为,但是考虑到实际生产环境中往往会出现两个域名 完全不同的情况,所以这里不考虑这种特殊的情况,使用更通用的方法来解决跨域的问题. 首先在webapi上有如下所示一个接口 我们需要在我们的web站点下通过ajax方式调用这个接口 此时我们可以看到如下的结果 通过分

WinCE 下进程可访问的代码页的地址获取

此功能是在看 TCPMP 代码时发现的,感觉以后的工作中可能用到此部分功能,所以记录下来. 1 #include "windef.h" 2 #include "windows.h" 3 /* 4 * 功能: 进程可访问的代码页 5 * 参数: pPtr(in) 进程中一函数的指针 6 ppucMin,ppucMax(out) 输出进程可访问地址的最小/最大值 7 puiPageSize(in/out) 页面大小设置与输出 8 */ 9 void CodeAddrFi

php中禁止单个ip与ip段访问的代码小结

1.禁止单个IP <?php //IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown

html网页访问WebAPI中的方法遇到的问题

1.移动端访问远程服务时,建议使用WebAPI 2.用不同浏览器访问WebAPI时返回的文本格式是不同的,Chrome Firefox将在浏览器中以XML形式显示此列表,IE浏览器将获得Json格式的数据,区别的原因在于不同浏览器的请求头不同,分别为:application/XML和application/json 2.客户端发送Get请求访问WebAPI时,框架会查找以Get开头的方法进行匹配,当客户端发送Post请求时,框架会查找以Post开头的方法进行匹配 4.跨域访问WebAPI中的方法

判断是手机还是电脑访问的代码 &nbsp;

判断是手机还是电脑访问的函数代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public function whichpad() {     //检测访问的系统及版本.浏览器版本等信息     $agent = strtolower($_SERVER['HTTP_USER_AGENT']);     $is_iphone = (strpos($agent, 'iphone')) ? true : false;     $is_android = (strpo

Python Cookbook(第3版)中文版:15.1 使用ctypes访问C代码

15.1 使用ctypes访问C代码? 问题? 你有一些C函数已经被编译到共享库或DLL中.你希望可以使用纯Python代码调用这些函数,而不用编写额外的C代码或使用第三方扩展工具. 解决方案? 对于需要调用C代码的一些小的问题,通常使用Python标准库中的 ctypes 模块就足够了.要使用 ctypes ,你首先要确保你要访问的C代码已经被编译到和Python解释器兼容(同样的架构.字大小.编译器等)的某个共享库中了.为了进行本节的演示,假设你有一个共享库名字叫 libsample.so 

java成神之——HttpURLConnection访问api

HttpURLConnection 访问get资源 访问post资源 访问Delete资源 获取状态码 结语 HttpURLConnection 访问get资源 HttpURLConnection connection = (HttpURLConnection)new URL("http://ip/test").openConnection(); int responseCode = connection.getResponseCode(); InputStream inputStre

layui表单提交与ajax访问webapi

啊啊啊啊 这个东西实在很蛋疼啊 每次访问webapi就很老火 这里就一下  以后忘记的话就来查阅 不多说 直接开始 首先html页面 新建一个基于layui的form表单页面LayuiForm.cshtml(我的项目是基于mvc的 当然webform也是可以的  就不写了 个人习惯webform做前台的时候后台用一般处理程序.ashx来搭配). @{ Layout = null;} <!DOCTYPE html> <html><head> <meta name=&

10_Android中通过HttpUrlConnection访问网络,Handler和多线程使用,读取网络html代码并显示在界面上,ScrollView组件的使用

?? 编写如下项目: 2 编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.htmldemo" android:versionCode="1" andr