野火电子论坛

 找回密码
 注册

扫一扫,访问微社区

查看: 3130|回复: 4

[其它] W5500访问http

[复制链接]
发表于 2016-7-19 10:45:31 | 显示全部楼层 |阅读模式
在“-野火以太网模块【型号W5500】资料汇总\W5500网络扩展板例程\9.HTTP Client”中测试http,返回HTTP/1.1 400


使用定义的IP信息配置W5500
  W5500 IP地址   : 192.168.1.88
  W5500 子网掩码 : 255.255.255.0
  W5500 网关     : 192.168.1.1
  YEElink服务器IP为:121.199.47.177
  YEElink服务器端口默认为:80
  我的Yelink ID为:wildfire
  我的Yelink PWD为:wildfire123
  请登录以上账号观察实时温度变化, 串口也可以查看获取信息
  应用程序执行中……
send: http://121.199.47.177:80/AMS/AMS.asmx/ServerDateTimeMCU?args=

receive: HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Tue, 19 Jul 2016 02:04:34 GMT
Connection: close
Content-Length: 326
野火_包罗万象 (10:18:33):
www.firebbs.cn论坛发个帖吧
回复

使用道具 举报

发表于 2016-7-19 11:56:00 | 显示全部楼层
你向服务器发送的是什么报文?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 12:17:00 | 显示全部楼层
直接发http地址,后面跟的参数表示查询当前时间
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-19 12:20:58 | 显示全部楼层
allen_gek 发表于 2016-7-19 12:17
直接发http地址,后面跟的参数表示查询当前时间

在http_client.c中增加下面条件编译,切到我们服务器
#if        __HTTP_YEELINK_DEMO
uint8 yeelink_server_ip[4]={42,96,164,52};                                                                                                        /*api.yeelink.net  µÄipµØÖ·*/
uint8 yeelink_port=80;                                                                                                                                                                                        /*api.yeelink.net  µÄ¶Ë¿ÚºÅ*/       
char  postT[]={
"POST /v1.0/device/17530/sensor/30435/datapoints HTTP/1.1\r\n"
"Host:api.yeelink.net\r\n"
"Accept:*/*\r\n"
"U-ApiKey:07597cf93ee715d2fee144f25aa3ff65\r\n"
"Content-Length:12\r\n"
"Content-Type:application/x-www-form-urlencoded\r\n"
"Connection:close\r\n"
"\r\n"
"{\"value\":xx}\r\n"
};/*xxÓÃÀ´Ìî³äζÈÊýÖµ*/

char  postH[]={//Ìύʪ¶È
"POST /v1.0/device/17530/sensor/30436/datapoints HTTP/1.1\r\n"
"Host:api.yeelink.net\r\n"
"Accept:*/*\r\n"
"U-ApiKey:07597cf93ee715d2fee144f25aa3ff65\r\n"
"Content-Length:12\r\n"
"Content-Type:application/x-www-form-urlencoded\r\n"
"Connection:close\r\n"
"\r\n"
"{\"value\":xx}\r\n"
};/*xxÓÃÀ´Ìî³äζÈÊýÖµ*/
char *post[]={postH,postT};
#else
uint8 yeelink_server_ip[4]={121,199,47,177};                                                                                                        /*api.yeelink.net  µÄipµØÖ·*/
uint8 yeelink_port=80;                                                                                                                                                                                        /*api.yeelink.net  µÄ¶Ë¿ÚºÅ*/       
char http_get_time[]={
        //"http://121.199.47.177/AMS/AMS.asmx/ServerDateTimeMCU?args=\r\n"
        //"GET http://121.199.47.177:80/AMS/AMS.asmx/ServerDateTimeMCU?args=\r\n"
        //"http://121.199.47.177:80/AMS/AMS.asmx/ServerDateTimeMCU?args=\r\n"
        "AMS/AMS.asmx/ServerDateTimeMCU?args=\r\n"
};
char *post[]={http_get_time,http_get_time};
/*
AT^HTTPCMD=0,GET,http://121.199.47.177:80/AMS/AMS.asmx/ServerDateTimeMCU?args=
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://www.underway.com/AMSWebServices">0,20160718230403</string>
*/
#endif


......
case SOCK_ESTABLISHED:                                                                                                                                                                         /*socket&Aacute;&not;&frac12;&Oacute;&frac12;¨&Aacute;&cent;*/
                        if(getSn_IR(ch) & Sn_IR_CON)  
                        {
                                setSn_IR(ch, Sn_IR_CON);                                                                                                                                                /*&Ccedil;&aring;&sup3;&yacute;&frac12;&Oacute;&Ecirc;&Otilde;&Ouml;&ETH;&para;&Iuml;±ê&Ouml;&frac34;*/
                        }
#if        __HTTP_YEELINK_DEMO
                        //if( Read_DHT11(&dht11_data)==SUCCESS)                                                                                                        /*&Aring;&ETH;&para;&Iuml;&Ecirc;&Ccedil;·&ntilde;&micro;&Atilde;&micro;&frac12;DHT11&Ecirc;&yacute;&frac34;&Yacute;*/
                        dht11_data.humi_int=25;
                        dht11_data.temp_int=16;
                        {
                                temp_rh[0]=dht11_data.humi_int;                                                                                                                        /*8bit &Ecirc;&ordf;&para;&Egrave;&Otilde;&ucirc;&Ecirc;&yacute;        */
                                temp_rh[1]=dht11_data.temp_int;                                                                                                                        /*8bit &Icirc;&Acirc;&para;&Egrave;&Otilde;&ucirc;&Ecirc;&yacute;*/
                                memcpy(buffer,post,strlen(post));       
                                buffer[231]=temp_rh/10+0x30;                  
                                buffer[232]=temp_rh%10+0x30;
                                send(ch,(const uint8 *)buffer,sizeof(buffer));                                                        /*W5500&Iuml;ò Yeelink·&thorn;&Icirc;&ntilde;&AElig;÷·&cent;&Euml;&Iacute;&Ecirc;&yacute;&frac34;&Yacute;*/
                                i=1;
                                printf("RH:%d, Temp:%d\r\n", temp_rh[0], temp_rh[1]);
                        }
                        delay_ms(500);
#else
                       
                        if(getSn_IR(SOCK_TCPC) & Sn_IR_CON)
                        {
                                setSn_IR(SOCK_TCPC, Sn_IR_CON);                                                                  /*&Ccedil;&aring;&sup3;&yacute;&frac12;&Oacute;&Ecirc;&Otilde;&Ouml;&ETH;&para;&Iuml;±ê&Ouml;&frac34;&Icirc;&raquo;*/
                        }
                  #if        0
                        len=getSn_RX_RSR(SOCK_TCPC);                                                                                    /*&para;¨&Ograve;&aring;len&Icirc;&ordf;&Ograve;&Ntilde;&frac12;&Oacute;&Ecirc;&Otilde;&Ecirc;&yacute;&frac34;&Yacute;&micro;&Auml;&sup3;¤&para;&Egrave;*/
                        if(len>0)
                        {
                                recv(ch,(uint8 *)buffer,len);                                                                                     /*&frac12;&Oacute;&Ecirc;&Otilde;&Agrave;&acute;×&Ocirc;Server&micro;&Auml;&Ecirc;&yacute;&frac34;&Yacute;*/
                                buffer[len]=0x00;                                                                                                           /*&Igrave;í&frac14;&Oacute;×&Ouml;·&ucirc;&acute;&reg;&frac12;á&Ecirc;&oslash;·&ucirc;*/
                                printf("clear rxbuf: %s\r\n",buffer);
                                //send(SOCK_TCPC,buffer,len);                                                                                      /*&Iuml;òServer·&cent;&Euml;&Iacute;&Ecirc;&yacute;&frac34;&Yacute;*/
                        }                  
                        #endif
                        memcpy(buffer,post,strlen(post));       
                        send(ch,(const uint8 *)buffer,sizeof(buffer));
                        printf("send: %s\r\n", buffer);
                        delay_ms(500);
                        recv(ch, (uint8 *)buffer, sizeof(buffer));
                        printf("receive: %s\r\n", buffer);
                        close(ch);
#endif
回复 支持 反对

使用道具 举报

发表于 2017-12-28 18:34:18 | 显示全部楼层
好帖!

w5500代理商炜世科技,欢迎前来咨询: 0755-8656 8556,技术支持邮箱:support@wisioe.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

野火电子公众号

手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 大学生ARM嵌入式2群

GMT+8, 2020-2-17 06:24 , Processed in 0.164872 second(s), 27 queries , Gzip On.

野火电子论坛

© 2014-2016 www.firebbs.cn

快速回复 返回顶部 返回列表