搜索
bottom↓
回复: 7

嵌入式LINUX如何访问服务器的webserver接口

[复制链接]

出0入0汤圆

发表于 2012-10-30 17:48:22 | 显示全部楼层 |阅读模式
我的系统是用ARM作的嵌入式linux,跑2.6.37.
现在 需要与一台服务器通讯,通过webserver接口。
请问用该如何写我的嵌入式的应用程序?
我用的是c和minigui界面。
下面是接口的例子:
请求信息:
<?xml version= "1.0" encoding="UTF-8"?>
<request>
<transCode>xxxxxx</transCode>   
<deviceId>xxxxxxxxxxxxxxx</deviceId>   
</request>


返回信息:

<?xml version= "1.0" encoding="UTF-8"?>
<response>
<transStatus>xxxxx</transStatus>   
<transCode>xxxxx</transCode>   
<transErrorCode>xxxxx</transErrorCode>   
<transErrorMessage>系统故障!</transErrorMessage>   
</ response >

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入42汤圆

发表于 2012-10-30 19:13:35 | 显示全部楼层
看不懂, 问题到底是什么? 看起来没办法一句话给你答案
基于SOAP的协议吗?

出0入0汤圆

 楼主| 发表于 2012-10-31 08:50:27 | 显示全部楼层
albert_w 发表于 2012-10-30 19:13
看不懂, 问题到底是什么? 看起来没办法一句话给你答案
基于SOAP的协议吗?

问题是:我的MINIGUI C语言的应用程序该如何写。
因为不懂,所以没问是什么协议。
如果是HTTP协议,该如何写啊?
要是GSOAP呢?
谢谢。指点一下就可以了。

出0入42汤圆

发表于 2012-10-31 09:40:49 | 显示全部楼层
demoxiedemoxie 发表于 2012-10-31 08:50
问题是:我的MINIGUI C语言的应用程序该如何写。
因为不懂,所以没问是什么协议。
如果是HTTP协议,该如 ...

我的MINIGUI C语言的应用程序该如何写。

这种问题, 指点十下也没用啊.... 太有难度了

出0入0汤圆

 楼主| 发表于 2012-10-31 10:09:58 | 显示全部楼层
albert_w 发表于 2012-10-31 09:40
我的MINIGUI C语言的应用程序该如何写。

这种问题, 指点十下也没用啊.... 太有难度了 ...

呵呵。
不好意思,描述的不准确。

出0入0汤圆

 楼主| 发表于 2012-10-31 16:33:18 | 显示全部楼层
我用gsoap工具,在客户端给服务端发送内容
<?xml version= "1.0" encoding="UTF-8"?>
<request>
<transCode>xxxxxx</transCode>   
<deviceId>xxxxxxxxxxxxxxx</deviceId>   
</request>
服务端回复:
<?xml version= "1.0" encoding="UTF-8"?>
<response>
<transStatus>xxxxx</transStatus>   
<transCode>xxxxx</transCode>   
<transErrorCode>xxxxx</transErrorCode>   
<transErrorMessage>系统故障!</transErrorMessage>   
</ response >
请问,客户端和服务端的程序该如何写?
可以借鉴samples里面的calc程序吗?

谢谢

出0入0汤圆

 楼主| 发表于 2012-11-1 16:50:41 | 显示全部楼层
我在linuxi下用c写了一个测试程序:
我自己做了一个程序,
在客户端,是:
  char *_str1="Ilveyou";
  char *_str2="Youloveme";
  char str[1000];
  char *_ret;
  _ret=str;
  soap_call_ns__my_cat_str(&soap, server, "", _str1, _str2, &_ret);
printf("ret = %s\n", _ret);
服务端,是:
int ns__my_cat_str(struct soap *soap, char *a, char *b, char **result)
{
  static char *greeting[]={"Hello","Goodbye","How are you"," "};
  result=greeting;
  printf("str:%s\n",*result);
  return SOAP_OK;
}
结果服务端输出的结果正确,为Hello,
客户端的输出错误:为null,
搞了一天,也不知道问题出在哪里。
是不是gsoap的机制有问题?在处理字符串的时候。

出0入0汤圆

 楼主| 发表于 2012-11-2 09:55:31 | 显示全部楼层
demoxiedemoxie 发表于 2012-11-1 16:50
我在linuxi下用c写了一个测试程序:
我自己做了一个程序,
在客户端,是:

这个问题找到了,看了例程。
在服务端需要给**result变量开辟内存空间才行。
而且不能用指针赋值的方式给result赋值,而需要用sprintf或strcpy的方式来处理。
如下:  
  *result = (char *) soap_malloc(soap, 100);
  sprintf(*result, "%s", b);
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 16:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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