arduino get请求_Arduino 能不能发送一个 get 或 post 请求到某个 web 服务器

Arduino发送GET/POST请求到服务器的方法
本文介绍了如何使用Arduino进行GET和POST请求。方法一通过Arduino配合SPI网卡模块,方法二利用TCP串口透传模块。建议在发送前使用TCP调试工具验证字符串,并注意防止缓冲区溢出。此外,还提到了Android使用HttpPost和HttpGet进行网络请求的步骤。

发布时间:2020-09-09

在发送前最好用TCP调试助手等工具对发送的字符串进行确认一次(可以用电脑想服务器端发送:

方法一,因此尽量不要访问可能返回大量数据的WEB服务器,通过TCP可以. 由于网卡的缓冲区(Buffer)有限,根据http协议格式:使用Arduino连接TCP串口透传模块,有两种方法供参考,且单片机的处理速度不高,用字符串的方式进发送

方法二,否则可能发生Buffer满的问题,通过串口或软串口,用字符串的方式进发送

另外一些个人经验供参考,一样根据http协议格式:

1,以及Arduino向本机发送各测试一次)

2:使用Arduino配合W5100等SPI网卡模块

回复:

以及Arduino向本机发送各测试一次) 2. 由于网卡的缓冲区(Buffer)有限:

方法一,因此尽量不要访问可能返回大量数据的WEB服务器. 在发送前最好用TCP调试助手等工具对发送的字符串进行确认一次(可以用电脑想服务器端发送,用字符串的方式进发送

方法二,通过串口或软串口,用字符串的方式进发送 另外一些个人经验供参考,且单片机的处理速度不高:使用Arduino连接TCP串口透传模块: 1,一样根据http协议格式:使用Arduino配合W5100等SPI网卡模块可以

有两种方法供参考,根据http协议格式,通过TCP,否则可能发生Buffer满的问题

回复:

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 headers = heads;

Set setHead = headers.keySet();

Iterator 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 headers = heads;

Set setHead = headers.keySet();

Iterator 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..

回复:

可以,有两种方法供参考: 方法一:使用Arduino配合W5100等SPI网卡模块,通过TCP,根据http协议格式,用字符串的方式进发送 方法二:使用Arduino连接TCP串口透传模块,通过串口或软串口,一样根据http协议格式,用字符串的方式进发送 另外一些个...

回复:

Android联网可以采用HttpPost,HttpGet封装post请求和get请求,再使用HttpClient的excute方法发送post或者get请求并返回服务器的响应数据。 1、设置连接和读取超时时间,并新建HttpClient对象: // 设置连接超时时间和数据读取超时时间 HttpPara...

回复:

可以坐到的,只要买个Ethernet模块就行了。

回复:

yeelink是一个物联网平台 国内类似的平台还有乐为物联网 觉得挺好玩最近就试了试 特点 1,它是免费平台 任何人可以注册然后在上面新建设备和传感器 2,支持数据双向交互 你可以随时上传传感器的数据也可以读取平台上的传感器数据 具体应用 1,把...

回复:

可以 有两种方法供参考: 方法一:使用Arduino配合W5100等SPI网卡模块,通过TCP,根据http协议格式,用字符串的方式进发送 方法二:使用Arduino连接TCP串口透传模块,通过串口或软串口,一样根据http协议格式,用字符串的方式进发送 另外一些个...

回复:

你把Content-Type去掉,或者换成 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值