private void button1_Click(object sender, EventArgs e) { //Uri uri = new Uri("http://localhost:8080/web/");
Uri uri = new Uri("http://www.baidu.com"); WebRequest req = WebRequest.Create(uri); }
在Mono下调用以上代码时会引发以下异常:
Unhandled Exception: System.NotSupportedException: http://www.baidu.com/
at System.Net.WebRequest.GetCreator (string) <0x001af>
at System.Net.WebRequest.Create (System.Uri) <0x00039>
at XmlHelper.Form1.button1_Click (object,System.EventArgs) <0x0002a>
at System.Windows.Forms.Control.OnClick (System.EventArgs) <0x00050>
at System.Windows.Forms.Button.OnClick (System.EventArgs) <0x00037>
不知有谁遇到过,有解决办法
注意是在Mono下调用才报错,其余情况都是正常
private string HttpMethod(string data, string uri, string method, string contentType) { //Web访问对象 string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri); try { HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl); //转成网络流 byte[] buf = UnicodeEncoding.UTF8.GetBytes(data); //设置 myRequest.Method = method; myRequest.ContentLength = buf.Length; // myRequest.ContentType = "application/soap+JSON"; myRequest.ContentType = contentType; myRequest.CookieContainer = cookie; // 发送请求 Stream newStream = myRequest.GetRequestStream(); newStream.Write(buf, 0, buf.Length); newStream.Close(); // 获得接口返回值 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string ReturnXml = reader.ReadToEnd(); reader.Close(); myResponse.Close(); return ReturnXml; } catch (Exception ex) { return ex.Message; }
用上面这段代码试试
您好,
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
这句在Mono下运行还是会报我提到的错误。
System.NotSupportedException一般是因为你的协议不是标准协议,比如你创建一个请求到 abc://aaa.bbb.ccc 这个地址,那么由于abc是未知的协议,会抛出NotSupportedException. 你贴在问题里的代码是你简化过的还是怎么来的,你debug一下,看看Uri的值到底是什么,如果还不行就用string代替Uri:
WebRequest req = WebRequest.Create("http://www.baidu.com");
看看是不是还会报错。
您好,直接用string替换也是同样错误,注意只是在Mono下调用报错
Mono好像还不是很成熟哦...有很多东西还不能正常使用的
你试一下使用WebClient看行不行啦
怎么解决的?我也遇到这问题了。
我的换进是CentOS7.0 系统 下面 mono+jexus
跟这个问题一样吗?
https://q.cnblogs.com/q/37805/