Unity http通信问题合集


1、发送Put请求出现 405.0 - Method Not Allowed 解决方法

原文链接:http://www.cnblogs.com/shanyou/archive/2012/03/23/2414252.html

WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDav把Put,Delete给咔嚓了。所以在IIS 7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)就悲剧了,当发送Put请求就会发生HTTP Error 405.0 – Method  Not Allowed错误,解决方法也很简单,在Web.config里面加入如下设置:

<system.webServer> 
  <modules> 
    <remove name="WebDAVModule" /> 
  </modules> 
  <handlers> 
    <remove name="WebDAV" /> 
  </handlers> 

</system.webServer>


2、报错 WebException: Error writing request: The authentication or decryption has failed.

转载原链接:https://blog.csdn.net/dark00800/article/details/78191431

运行报错 
这是网页端身份安全验证失败导致的,我们需要在程序运行时手动添加安全证书,在Awake方法中加入:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
               delegate (object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                           System.Security.Cryptography.X509Certificates.X509Chain chain,
                           System.Net.Security.SslPolicyErrors sslPolicyErrors)
                {
                   return true; // **** Always accept
                };


3、UrlEncode方法

public string UrlEncode(string str) {
        StringBuilder sb = new StringBuilder();
        byte[] byStr = System.Text.Encoding.UTF8.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str)
        for (int i = 0; i < byStr.Length; i++) {
            sb.Append(@"%" + Convert.ToString(byStr[i], 16));
        }

        return (sb.ToString());
    }

4、获取图片文件和Texure2D 的base64编码方法

string imagePath = @"E:\CaiZeShen\MyUnity\Test\Assets\Test\timg01.jpg";
string base64 = Convert.ToBase64String(File.ReadAllBytes(imagePath));
string base64 = Convert.ToBase64String(m_Texture2D.EncodeToJPG()); 



猜你喜欢

转载自blog.csdn.net/a673544319/article/details/80632805