新手求助,Arduino联网后,如何回应HttpClient的GET请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手求助,Arduino联网后,如何回应HttpClient的GET请求相关的知识,希望对你有一定的参考价值。
参考技术A android联网可以采用HttpPost,HttpGet封装post请求和get请求,再使用HttpClient的excute方法发送post或者get请求并返回服务器的响应数据。1、设置连接和读取超时时间,并新建HttpClient对象:
// 设置连接超时时间和数据读取超时时间
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
30000);
HttpConnectionParams.setSoTimeout(httpParams,
30000);
//新建HttpClient对象
HttpClient httpClient = new DefaultHttpClient(httpParams);
2、Get请求:
HttpPost post = new HttpPost(KeySource.HOST_URL_STR);
// set HTTP head parameters
Map<String, String> headers = heads;
Set<String> setHead = headers.keySet();
Iterator<String> iteratorHead = setHead.iterator();
while (iteratorHead.hasNext())
String headName = iteratorHead.next();
String headValue = (String) headers.get(headName);
post.setHeader(headName, headValue);
/**
* 通常的HTTP实体需要在执行上下文的时候动态生成的。
* HttpClient的提供使用EntityTemplate实体类和 ContentProducer接口支持动态实体。
* 内容制作是通过写需求的内容到一个输出流,每次请求的时候都会产生。
* 因此,通过EntityTemplate 创建实体通常是独立的,重复性好。
*/
ontentProducer cp = new ContentProducer()
public void writeTo(OutputStream outstream)
throws IOException
Writer writer = new OutputStreamWriter(outstream,
"UTF-8");
writer.write(requestBody);
writer.flush();
writer.close();
;
HttpEntity entity = new EntityTemplate(cp);
post.setEntity(entity);
//执行connect ,需要try ,catch处理
response = httpClient.execute(post);
3、Post请求:
HttpPost post = new HttpPost(KeySource.HOST_URL_STR);
// set HTTP head parameters
Map<String, String> headers = heads;
Set<String> setHead = headers.keySet();
Iterator<String> iteratorHead = setHead.iterator();
while (iteratorHead.hasNext())
String headName = iteratorHead.next();
String headValue = (String) headers.get(headName);
post.setHeader(headName, headValue);
/**
* 通常的HTTP实体需要在执行上下文的时候动态生成的。
* HttpClient的提供使用EntityTemplate实体类和ContentProducer接口支持动态实体。
* 内容制作是通过写需求的内容到一个输出流,每次请求的时候都会产生。
* 因此,通过EntityTemplate创建实体通常是独立的,重复性好。
*/
ContentProducer cp = new ContentProducer()
public void writeTo(OutputStream outstream)
throws IOException
Writer writer = new OutputStreamWriter(outstream,
"UTF-8");
writer.write(requestBody);
writer.flush();
writer.close();
;
HttpEntity entity = new EntityTemplate(cp);
post.setEntity(entity);
//connect ,need try catch
response = httpClient.execute(post);
4、请求Response响应处理:
if (response.getStatusLine().getStatusCode() == 200)
// get response xml.
/**
* 因为直接调用toString可能会导致某些中文字符出现乱码的情况。所以此处使用toByteArray
* 如果需要转成String对象,可以先调用EntityUtils.toByteArray()方法将消息实体转成byte数组,
* 在由new String(byte[] bArray)转换成字符串。
*/
byte[] bResultXml = EntityUtils.toByteArray(response
.getEntity());
if (bResultXml != null)
String strXml = new String(bResultXml, "utf-8");
//Todo xmlAnalysis..本回答被提问者和网友采纳 参考技术B 需要帮你做设计吗
以上是关于新手求助,Arduino联网后,如何回应HttpClient的GET请求的主要内容,如果未能解决你的问题,请参考以下文章