尝试向 URI“http://xxx.xx.xx.xxx/XACBMSWebService.asmx”发出请求时出错。

本文介绍了一种常见的WebService跨域访问错误及其解决方案。通过放置crossdomain.xml和clientaccesspolicy.xml两个文件到WebService的根目录下,可以有效解决跨域访问问题,并允许发送SOAP相关的HTTP标头。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是 访问 webservice 时报的错误

尝试向 URI“http://xxx.xx.xx.xxx/XACBMSWebService.asmx”发出请求时出错。
这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。
您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由
于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。
有关详细信息,请参阅内部异常。

 

解决方案:

crossdomain.xml

  <?xml version="1.0" ?>

- < cross-domain-policy >
  < allow-access-from domain =" * " />
  </ cross-domain-policy >
clientaccesspolicy.xml
<?xml version="1.0" encoding="utf-8"?>  
<access-policy> 
    <cross-domain-access> 
        <policy> 
            <allow-from http-request-headers="*">  
                <domain uri="*"/> 
            </allow-from> 
            <grant-to> 
                <resource path="/" include-subpaths="true"/>  
            </grant-to> 
        </policy> 
    </cross-domain-access> 
</access-policy> 
将这两个文件  粘在webservice 发布的 根目录
在C#中,你可以使用多种方式来发送HTTP POST请求以获取响应。其中一种常见的方法是使用`HttpClient`类。以下是使用`HttpClient`发送POST请求的一个简单示例: ```csharp using System; using System.Net.Http; using System.Threading.Tasks; class Program { static readonly HttpClient client = new HttpClient(); static async Task Main() { // 设置POST请求的URI var uri = "http://192.168.1.91:8081/webservice/mesateapi.asmx"; // 创建一个HttpContent对象,这里以表单数据为例 var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("key1", "value1"), new KeyValuePair<string, string>("key2", "value2") // 添加更多的键值对 }); // 发送POST请求并获取响应 var response = await client.PostAsync(uri, content); // 确保响应成功 if (response.IsSuccessStatusCode) { // 读取响应内容 var responseContent = await response.Content.ReadAsStringAsync(); Console.WriteLine(responseContent); } else { Console.WriteLine($"请求失败,状态码:{response.StatusCode}"); } } } ``` 注意: - 在使用此代码,你需要确保你的应用程序能够访问到目标服务器(IP地址`192.168.1.91`),并且服务器端口`8081`是开放的。 - 如果接口需要特定的内容类型(如JSON),则需要相应地更改`FormUrlEncodedContent`为其他适合的内容类型,比如`StringContent`,并指定正确的`MediaTypeHeaderValue`。 - 请确保将`key1`、`value1`、`key2`、`value2`等替换为你实际需要发送的数据键值对。 - 如果目标服务器配置了HTTPS,并且你使用的是自签名证书或非信任的证书,你可能需要配置`HttpClientHandler`来接受这种证书。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值