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-效果

相关推荐
左直拳2 个月前
java访问华为网管软件iMaster NCE的北向接口
soap·otn·网管软件·imaster nce·xml接口·stub
Dylanioucn2 个月前
【分布式微服务云原生】 探索SOAP协议:简单对象访问协议的深度解析与实践
java·分布式·后端·微服务·云原生·soap
Dylanioucn2 个月前
【分布式微服务云原生】 选择SOAP还是RESTful API?深入探讨与实践指南
java·分布式·后端·微服务·云原生·restful·soap
Damon小智5 个月前
C#进阶-基于.NET Framework 4.x框架实现ASP.NET WebForms项目IP拦截器
http·c#·asp.net·.net·ip·拦截·soap
bigbearxyz5 个月前
Java客户端调用SOAP方式的WebService服务实现方式分析
java·webservice·soap
不如喫茶去1 年前
PHP调用.NET的asmx服务接口
php·.net·soap·php soap请求
@Crazy Snail1 年前
Webservice--HTTP,SOAP协议区别
网络·网络协议·http·soap