- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0 |
最经接触了一个项目,要用C#来做,但是他原有的网站是PHP做的,数据库使用的是MySql,也不能让我们直接去操作他们的数据库,就这样,提供了一套PHP API给我们,以前到是没有接触过,网上查了很多资料,才慢慢稍微有点弄懂了,但是还不是那么的清晰。
他们的PHP API其实就是一些url地址和一些参数,使用那些,会返回一些字符串。网上查资料,知道了会使用到XMLHTTP这种方式来使用,但是很多也是使用js来调用,虽然不难,但是比起在在CS中写C#代码来的话,就没那么方便(个人的想法)。最后找到了在代码中调用com组建,直接在CS文件中编写,确实也实现了,但是产生了乱码,网上有说原因,具体原理还太明白,只知道是编码格式的问题,可是怎么也弄,也不能正确显示,倒是有有方法能实现,但是用VBScrpt写的一个函数。
最后方法了原来.NET中有WebRequest这个类,功能是一样的,且用起来很方便,实验了下,还是乱码,最后把编码格式改成了Big5,正确了,呵呵。最后把代码贴在下面。
#region 封裝調用API的函數
/// <summary>
/// 根據php api返回返回的字符串
/// </summary>
/// <param name="url">調用的api url</param>
/// <returns>返回需要的數據字符串</returns>
public static string GetDataWithUrl(string url)
{
string respstr;
WebRequest myWebRequest = WebRequest.Create(url);
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream stream = myWebResponse.GetResponseStream();
Encoding encoder = Encoding.GetEncoding(ConfigurationManager.AppSettings["FontEncoding"]);//讀配置文件,編寫編碼格式
StreamReader sr = new StreamReader(stream, encoder);
//以字符串形式读取数据流
respstr = sr.ReadToEnd();
sr.Close();
return respstr;
}
#endregion
调用的编码格式那里,我使用了配置文件,其实就是"Big5",红色部分就是转换编码格式,需要使用到StreamReader其中一个带编码格式的重载,如果数据是其他格式,做相应的修改就可以了。
就这么几句简单的代码,搞定,比起用MSXML2这种方式好用多了,也不用去操作js,乱码问题也得以简单的解决,研究这个乱码花了我2个下午的时间,当然这里只是用于Get方法,POST的方法略有不同,还有,这方便会具体在研究一下。
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |