Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何调用web服务表单代码_Asp.net_Visual Studio 2010_Web Services_C# 4.0 - Fatal编程技术网

Asp.net 如何调用web服务表单代码

Asp.net 如何调用web服务表单代码,asp.net,visual-studio-2010,web-services,c#-4.0,Asp.net,Visual Studio 2010,Web Services,C# 4.0,我有一个web服务,我想从我的代码隐藏页调用它,而不是从源代码调用它。我用谷歌搜索了这个主题,但在大多数链接中,我发现他们使用ajax post从源代码调用web服务 $.ajax({ type: "POST", url: "webservice.asmx/webservice", data: "{}", contentType: "application/json; charset=utf-8",

我有一个web服务,我想从我的代码隐藏页调用它,而不是从源代码调用它。我用谷歌搜索了这个主题,但在大多数链接中,我发现他们使用ajax post从源代码调用web服务

 $.ajax({
            type: "POST",
            url: "webservice.asmx/webservice",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            cache: false,
            dataType: "json",
            success: function (result) {
            }
        }); 

但是我不想使用这种方法,我只是想从我的代码页面调用webservice。有什么帮助吗?

您需要将Web引用添加到项目中

以下是有关如何使用web服务的分步指南:


您需要将Web引用添加到项目中

以下是有关如何使用web服务的分步指南:


您可以使用此代码块

public string CallWebMethod(string url, Dictionary<string, string> dicParameters)
{
    try
    {
        byte[] requestData = this.CreateHttpRequestData(dicParameters); 
        HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(url);
        httpRequest.Method = "POST";
        httpRequest.KeepAlive = false;
        httpRequest.ContentType = "application/x-www-form-urlencoded";
        httpRequest.ContentLength = requestData.Length;
        httpRequest.Timeout = 30000;
        HttpWebResponse httpResponse = null;
        String response = String.Empty;

        httpRequest.GetRequestStream().Write(requestData, 0, requestData.Length);
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
        Stream baseStream = httpResponse.GetResponseStream();
        StreamReader responseStreamReader = new StreamReader(baseStream);
        response = responseStreamReader.ReadToEnd();
        responseStreamReader.Close();

        return response;
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
}

private byte[] CreateHttpRequestData(Dictionary<string, string> dic)
{
    StringBuilder sbParameters = new StringBuilder();
    foreach (string param in dic.Keys)
    {
        sbParameters.Append(param);//key => parameter name
        sbParameters.Append('=');
        sbParameters.Append(dic[param]);//key value
        sbParameters.Append('&');
    }
    sbParameters.Remove(sbParameters.Length - 1, 1);

    UTF8Encoding encoding = new UTF8Encoding();

    return encoding.GetBytes(sbParameters.ToString());

} 
公共字符串CallWebMethod(字符串url、字典参数)
{
尝试
{
byte[]requestData=this.CreateHttpRequestData(参数);
HttpWebRequest httpRequest=(HttpWebRequest)HttpWebRequest.Create(url);
httpRequest.Method=“POST”;
httpRequest.KeepAlive=false;
httpRequest.ContentType=“application/x-www-form-urlencoded”;
httpRequest.ContentLength=requestData.Length;
httpRequest.Timeout=30000;
HttpWebResponse httpResponse=null;
字符串响应=String.Empty;
httpRequest.GetRequestStream().Write(requestData,0,requestData.Length);
httpResponse=(HttpWebResponse)httpRequest.GetResponse();
Stream baseStream=httpResponse.GetResponseStream();
StreamReader responseStreamReader=新的StreamReader(baseStream);
response=responseStreamReader.ReadToEnd();
responseStreamReader.Close();
返回响应;
}
捕获(例外情况除外)
{
抛出新异常(例如消息);
}
}
专用字节[]CreateHttpRequestData(字典dic)
{
StringBuilder sbParameters=新的StringBuilder();
foreach(dic.Keys中的字符串参数)
{
sbParameters.Append(param);//key=>参数名
sbParameters.Append('=');
sbParameters.Append(dic[param]);//键值
sbParameters.Append('&');
}
sbParameters.Remove(sbParameters.Length-1,1);
UTF8Encoding=新的UTF8Encoding();
返回encoding.GetBytes(sbParameters.ToString());
} 

您可以使用此代码块

public string CallWebMethod(string url, Dictionary<string, string> dicParameters)
{
    try
    {
        byte[] requestData = this.CreateHttpRequestData(dicParameters); 
        HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(url);
        httpRequest.Method = "POST";
        httpRequest.KeepAlive = false;
        httpRequest.ContentType = "application/x-www-form-urlencoded";
        httpRequest.ContentLength = requestData.Length;
        httpRequest.Timeout = 30000;
        HttpWebResponse httpResponse = null;
        String response = String.Empty;

        httpRequest.GetRequestStream().Write(requestData, 0, requestData.Length);
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
        Stream baseStream = httpResponse.GetResponseStream();
        StreamReader responseStreamReader = new StreamReader(baseStream);
        response = responseStreamReader.ReadToEnd();
        responseStreamReader.Close();

        return response;
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
}

private byte[] CreateHttpRequestData(Dictionary<string, string> dic)
{
    StringBuilder sbParameters = new StringBuilder();
    foreach (string param in dic.Keys)
    {
        sbParameters.Append(param);//key => parameter name
        sbParameters.Append('=');
        sbParameters.Append(dic[param]);//key value
        sbParameters.Append('&');
    }
    sbParameters.Remove(sbParameters.Length - 1, 1);

    UTF8Encoding encoding = new UTF8Encoding();

    return encoding.GetBytes(sbParameters.ToString());

} 
公共字符串CallWebMethod(字符串url、字典参数)
{
尝试
{
byte[]requestData=this.CreateHttpRequestData(参数);
HttpWebRequest httpRequest=(HttpWebRequest)HttpWebRequest.Create(url);
httpRequest.Method=“POST”;
httpRequest.KeepAlive=false;
httpRequest.ContentType=“application/x-www-form-urlencoded”;
httpRequest.ContentLength=requestData.Length;
httpRequest.Timeout=30000;
HttpWebResponse httpResponse=null;
字符串响应=String.Empty;
httpRequest.GetRequestStream().Write(requestData,0,requestData.Length);
httpResponse=(HttpWebResponse)httpRequest.GetResponse();
Stream baseStream=httpResponse.GetResponseStream();
StreamReader responseStreamReader=新的StreamReader(baseStream);
response=responseStreamReader.ReadToEnd();
responseStreamReader.Close();
返回响应;
}
捕获(例外情况除外)
{
抛出新异常(例如消息);
}
}
专用字节[]CreateHttpRequestData(字典dic)
{
StringBuilder sbParameters=新的StringBuilder();
foreach(dic.Keys中的字符串参数)
{
sbParameters.Append(param);//key=>参数名
sbParameters.Append('=');
sbParameters.Append(dic[param]);//键值
sbParameters.Append('&');
}
sbParameters.Remove(sbParameters.Length-1,1);
UTF8Encoding=新的UTF8Encoding();
返回encoding.GetBytes(sbParameters.ToString());
} 

任何建议请…?生成web服务客户端如果是ASMX,我假设您有可用的WSDL,WSDL.exe可用于生成客户端,或者您可以使用HttpClient创建对该URL的请求。任何建议请…?生成web服务客户端如果是ASMX,我假设您有可用的WSDL,可以使用wsdl.exe生成客户端,也可以使用HttpClient创建对该URL的请求。