新手求助,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请求的主要内容,如果未能解决你的问题,请参考以下文章

arduino驱动安装失败求助

Arduino 互联网数据在 10 秒后消失

求助:Arduino同时执行2个步进电机命令

求助关于arduino串口字符串提取浮点数

菜鸟求助,刚买回来的Arduino uno r3让我弄坏了

新手求助,表单数据提交不到后台