QT使用gsoap获取手机归属地

1-环境变量 用的win32

E:\hes_scc\tools\gsoap_2.8.134\gsoap-2.8\gsoap\bin\win32

2-生成代码接口

自己建一个目录,在此打开cmd窗口,生成的文件都会在这个文件夹中。

这里用的手机归宿地。

wsdl2h -o GetPhoneInfo.h -s -n Phone -t ....\typemap.dat http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

soapcpp2 -i -x -C GetPhoneInfo.h -I E:\hes_scc\tools\gsoap_2.8.134\gsoap-2.8\gsoap\import

然后目录中会生成一些文件。

说明:E:\hes_scc\tools\gsoap_2.8.134\gsoap-2.8\gsoap\import这个路径必须要选,不然会报错

此时路径下会生成一些文件,还需要手动拷贝一些别的文件

3-拷贝必要文件

需要拷贝3个文件过来

文件路径:E:\hes_scc\tools\gsoap_2.8.134\gsoap-2.8\gsoap\import

E:\hes_scc\tools\gsoap_2.8.134\gsoap-2.8\gsoap

4-加入工程

把所有文件都添加到qt的工程中。

现在编译还会报一堆错,需要添加一下库文件,在pro文件中添加,路径是自己的编译器路径

LIBS += D:\Qt\Qt5.9.9\Tools\mingw530_32\i686-w64-mingw32\lib\libws2_32.a

在stdsoap2.cpp中添加一个宏定义,在 #define GSOAP_LIB_VERSION 208134 后面

#define WITH_NONAMESPACES

现在编译就不会报错了。

5-获取结果中文乱码

//设置编码,不然中午会乱码

soap_set_mode(&mcsp,SOAP_C_UTFSTRING);

6-接口调用

//这个头文件必要的

#include "gsoap/soapMobileCodeWSSoapProxy.h"

void MainWindow::on_pushButton_clicked()
{
    MobileCodeWSSoapProxy mcsp;
    _Phone1__getMobileCodeInfo para;
    _Phone1__getMobileCodeInfoResponse resp;

    //设置编码,不然中午会乱码
    soap_set_mode(&mcsp,SOAP_C_UTFSTRING);

    para.mobileCode = ui->lineEdit->text().toLatin1().data();

    if(mcsp.getMobileCodeInfo(&para,resp) != SOAP_OK)
    {
        ui->textEdit->append(QString("search %1 is failed").arg(ui->lineEdit->text()));
        return;
    }


    QString recv = (resp.getMobileCodeInfoResult);


    qDebug()<<recv;
    ui->textEdit->append(recv);


}

7-效果

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值