C# 在C中使用带ASMX的HttpClient#

C# 在C中使用带ASMX的HttpClient#,c#,asmx,httpclient,C#,Asmx,Httpclient,我正在玩HttpClient'。我想知道它是否与.asmx`web服务兼容 假设我有这样一种方法: var baseAddress = new Uri("Http://localhost/folder/WebServiceCommand.asmx/"); var config = new HttpSelfHostConfiguration(baseAddress); var serve

我正在玩
HttpClient'。我想知道它是否与
.asmx`web服务兼容

假设我有这样一种方法:

        var baseAddress = new Uri("Http://localhost/folder/WebServiceCommand.asmx/");          
        var config = new HttpSelfHostConfiguration(baseAddress);                      
        var server = new HttpSelfHostServer(config);

        using (var client = new HttpClient(server))
        {
            client.BaseAddress = baseAddress;

            var response = client.GetAsync("GetData").Result;

            Assert.IsTrue(
                        response.IsSuccessStatusCode, 
                        "Actual status code: " + response.StatusCode);
        }
首先,我想做的是可能的还是应该使用旧的
HttpWebRequest

如果可能的话,为什么返回404-notfound?如果我将地址粘贴到浏览器中,它就可以了


谢谢

您可以将HttpClient与Web服务ASMX端点一起使用

        var httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));
        httpClient.DefaultRequestHeaders.Add("SOAPAction", "http://foo.com/GetVersion");

        var soapXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><GetVersion xmlns=\"http://foo.com/\" /></soap:Body></soap:Envelope>";

        var response = httpClient.PostAsync("http://foo.com/bar.asmx", new StringContent(soapXml, Encoding.UTF8, "text/xml")).Result;

        var content = response.Content.ReadAsStringAsync().Result;
var-httpClient=new-httpClient();
httpClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“text/xml”);
httpClient.DefaultRequestHeaders.Add(“SOAPAction”http://foo.com/GetVersion");
var soapXml=“”;
var response=httpClient.PostAsync(“http://foo.com/bar.asmx,新的StringContent(soapXml,Encoding.UTF8,“text/xml”)。结果;
var content=response.content.ReadAsStringAsync().Result;

您可以将HttpClient与Web服务ASMX端点一起使用

        var httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));
        httpClient.DefaultRequestHeaders.Add("SOAPAction", "http://foo.com/GetVersion");

        var soapXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><GetVersion xmlns=\"http://foo.com/\" /></soap:Body></soap:Envelope>";

        var response = httpClient.PostAsync("http://foo.com/bar.asmx", new StringContent(soapXml, Encoding.UTF8, "text/xml")).Result;

        var content = response.Content.ReadAsStringAsync().Result;
var-httpClient=new-httpClient();
httpClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“text/xml”);
httpClient.DefaultRequestHeaders.Add(“SOAPAction”http://foo.com/GetVersion");
var soapXml=“”;
var response=httpClient.PostAsync(“http://foo.com/bar.asmx,新的StringContent(soapXml,Encoding.UTF8,“text/xml”)。结果;
var content=response.content.ReadAsStringAsync().Result;

HttpClient不使用SOAP…谢谢,我担心是这样。HttpClient不使用SOAP…谢谢,我担心是这样。