Http请求Demo

package com.example.util;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.util.Log;
public class HttpUtils {
public HttpUtils() {
}
/**
 * 根据手机号从服务器获取相关信息
 * 从服务器上获取指定的内容-POST
 * 
 */
public static String getDataFromServer(String svrUrl, String ParamStr) {
Log.v("geek", "url = " + svrUrl);
Log.v("geek", "ParamStr = " + ParamStr);
try {
// 转成指定格式
byte[] requestData = ParamStr.getBytes("UTF-8");
HttpURLConnection conn = null;
DataOutputStream outStream = null;
String MULTIPART_FORM_DATA = "multipart/form-data";
// 构造一个post请求的http头
URL url = new URL(svrUrl); // 服务器地址
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true); // 允许输入
conn.setDoOutput(true); // 允许输出
conn.setUseCaches(false); // 不使用caches
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA);
conn.setRequestProperty("Content-Length", Long.toString(requestData.length));
// 请求参数内容, 获取输出到网络的连接流对象
outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(requestData, 0, requestData.length);
outStream.flush();
outStream.close();
ByteArrayOutputStream outStream2 = new ByteArrayOutputStream();
int cah = conn.getResponseCode();
if (cah != 200) {
Log.v("zd", "服务器响应错误代码:" + cah);
return "0";
}else if(cah == 200){
Log.v("zd", "服务器响应成功:" + cah);
}
InputStream inputStream = conn.getInputStream();
int len = 0;
byte[] data = new byte[1024];
while ((len = inputStream.read(data)) != -1) {
outStream2.write(data, 0, len);
}
outStream2.close();
inputStream.close();
String responseStr = new String(outStream2.toByteArray());
Log.v("geek", "data = " + responseStr);
return responseStr;
} catch (Exception e) {
return "";
}
}
/**
 * 把用户的相关信息发送到服务器
 * json格式
 * 从服务器上获取指定的内容-POST
 * 
 */
public static String postDataToServer(String svrUrl, String ParamStr) {
try {
// 转成指定格式
byte[] requestData = ParamStr.getBytes("UTF-8");
HttpURLConnection conn = null;
DataOutputStream outStream = null;
String MULTIPART_FORM_DATA = "multipart/form-data";
// 构造一个post请求的http头
URL url = new URL(svrUrl); // 服务器地址
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true); // 允许输入
conn.setDoOutput(true); // 允许输出
conn.setUseCaches(false); // 不使用caches
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA);
conn.setRequestProperty("Content-Length", Long.toString(requestData.length));
// 请求参数内容, 获取输出到网络的连接流对象
outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(requestData, 0, requestData.length);
outStream.flush();
outStream.close();
ByteArrayOutputStream outStream2 = new ByteArrayOutputStream();
int cah = conn.getResponseCode();
Log.v("zd", "getResponseCode = " + cah);
if (cah != 200) {
return "0";
}else if(cah == 200){
Log.v("zd", "upload succeed");
}
InputStream inputStream = conn.getInputStream();
int len = 0;
byte[] data = new byte[1024];
while ((len = inputStream.read(data)) != -1) {
outStream2.write(data, 0, len);
}
outStream2.close();
inputStream.close();
String responseStr = new String(outStream2.toByteArray());
Log.v("geek", "responseStr = " + responseStr);
return responseStr;
} catch (Exception e) {
return "0";
}
}
}
new HttpUtils();
result = HttpUtils.getDataFromServer(url, jsonArray.toString());
时间: 2024-08-06 15:59:42

Http请求Demo的相关文章

JQuery中使用Ajax实现诸如登录名检测等异步请求Demo

上一篇博客介绍了注册登录时一次性图形验证码的工具类的编写,这篇随笔同样是我在写用jquery中ajax实现登录信息检测的异步请求功能的笔记,在各个网站进行信息用户注册时,需要在不刷新页面的情况下对注册信息进行检测并实时返回信息,比如这种情况: 对于不需要访问数据库的页面验证比较简单,一旦需要访问数据库,就比较麻烦一些,好在Jquery可以很方便的使用ajax,我写了一个简单到不能再简单的例子,效果是这样的:     下面介绍步骤及代码: 1:jsp页面(重点是jquery函数)如下: 1 <%@

HttpClient发送Post,Get请求demo

一.Get请求     /**      * 通过httpclient到指定的uri来get数据      */     public static String getData(String url){             HttpClient httpClient = new HttpClient();         //设置代理         httpClient.getHostConfiguration().setProxy(Config.getProxyHost(), Conf

第八章,POST网络请求demo(Android)

在 AndroidManifest.xml中添加网络权限 <uses-permission android:name="android.permission.INTERNET"/> activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com

jquery 异步请求Demo【转载】

$(document).ready(function() { $.ajax({ url : "/AjaxAction/LoginArea.ashx", data : {username:user,password:pwd}, type : "POST", //dataType:"json", beforeSend: function(XMLHttpRequest){alert("开始请求")}, //加载过程 success

第六章,GET网络请求demo(Android)

在 AndroidManifest.xml中添加网络权限 <uses-permission android:name="android.permission.INTERNET"/> MainActivity package com.example.demo10; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpC

关于java post get请求Demo (请求c#iis接口)

废话不多说,直接上代码 package dxq.httpGetDemo; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import android.os.Bundle; import android.os.Handler; import and

创蓝253云通讯国际短信余额查询请求demo

<?phpheader("Content-type:text/html; charset=UTF-8");/ 功能:创蓝查询余额DEMO 版本:1.3 日期:2017-04-12 说明: 以下代码只是为了方便客户测试而提供的样例代码,客户可以根据自己网站的需要,按照技术文档自行编写,并非一定要使用该代码. 该代码仅供学习和研究创蓝接口使用,只是提供一个参考.*/require_once 'ChuanglanSmsApi.php';$clapi = new ChuanglanSms

Xamarin.Android之封装个简单的网络请求类

一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于HttpClient和HttpWebRequest两种方式的封装. 由于对这一块还不是很熟悉,所以可能不是很严谨. 二.先上封装好的代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Json

libcurl的封装,支持同步请求,支持异步通知请求

将libcurl封装了一下 满足同步请求,堵塞操作 也可以异步请求,马上返回,由请求在完成操作之后通知主函数请求已经就绪 闲话不多说,直接上代码 //header #ifndef __HTTP_REQUEST_H #define __HTTP_REQUEST_H #include <string> #include <map> #include <memory> class HttpNotify { public: HttpNotify() {} ~HttpNotify