请问在VC6.0下调用.Net写的WebService需要客户端下载.Net FrameWork吗?
请给出最简单的例子好吗?
假设webservice是这样写的
[webmethod]
string get()
{
return "123";
}
请问在vc6.0中是如何调用的?
谢谢
请给出最简单的例子好吗?
假设webservice是这样写的
[webmethod]
string get()
{
return "123";
}
请问在vc6.0中是如何调用的?
谢谢
//WEB_SERVICE
#import "msxml3.dll"
using namespace MSXML2;
#import "C:\Program Files\Common Files\MSSoap\Binaries\MSSOAP1.dll" exclude("IStream", "ISequentialStream", "_LARGE_INTEGER","_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME")
using namespace MSSOAPLib;
//ENDSoapTestDlg.h里面
CString BeginSoap(CString,CString,CString);
ISoapConnectorPtr SoapConnector;
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;SoapTestDlg.cpp里面
void CSoapTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString str,strWord;
GetDlgItem(IDC_EDIT1)->GetWindowText(strWord);
str=BeginSoap("EnglishTOChinese",strWord,"http://www.webservicex.net/translateservice.asmx");
AfxMessageBox(str);
}CString CSoapTestDlg::BeginSoap(CString UserName,CString Password,CString WebUrl)
{
HRESULT hr;
//创建SoapConnector类的对象
SoapConnector.CreateInstance(__uuidof(HttpConnector));
//指定Web服务的地址
SoapConnector->Property ["EndPointURL"] =(LPSTR)(LPCTSTR)WebUrl;
//与Web服务连接
hr=SoapConnector->Connect();
if(FAILED(hr)) return "";
//指定Web服务完成的操作
SoapConnector->Property ["SoapAction"] = _T("http://www.webservicex.net/Translate");
//准备发送消息给Web服务
SoapConnector->BeginMessage();
// 创建SoapSerializer对象
Serializer.CreateInstance(__uuidof(SoapSerializer));
// 将serializer连接到connector的输入字符串
Serializer->Init(_variant_t((IUnknown*)SoapConnector->InputStream));
// 创建SOAP消息
Serializer->startEnvelope("soap","","");
Serializer->startBody(""); Serializer->startElement("Translate","http://www.webservicex.net","","soap");
Serializer->startElement("LanguageMode","","","soap");
Serializer->writeString((_bstr_t)(LPCTSTR)UserName);
Serializer->endElement();
Serializer->startElement("Text","","","soap");
Serializer->writeString((_bstr_t)(LPCTSTR)Password);
Serializer->endElement(); Serializer->endElement(); Serializer->endBody();
Serializer->endEnvelope();
//消息真正地发给Web服务
hr=SoapConnector->EndMessage();
if(FAILED(hr)) return "";
// 读取响应
Reader.CreateInstance(__uuidof(SoapReader));
// 将reader联接到connector的输出字符串
Reader->Load(_variant_t((IUnknown*)SoapConnector->OutputStream), _T(""));
return CString((const char *)Reader->RPCResult->text);
}