webservice 寫的加載url並返回json


   寫了一個接口實現調用別人的接口返回json數據,在自己的接口里輸出json字符串。下面有關於json字符串返回值的中文亂碼問題。

  

  

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Services;

namespace search
{
    /// <summary>
    /// SearchWebService 的摘要說明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消注釋以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class SearchWebService : System.Web.Services.WebService
    {

        [WebMethod]
        public void LbsSearch(string a,string b)
        {
            string url = string.Format("http://url地址?a={0}&b={1}", a, b);
            var json=GetHtml(url);
            //TotalInfo TotalInfo = JsonConvert.DeserializeObject<TotalInfo>(json);
            Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            Context.Response.Write(json);
            Context.Response.End();
        }
        private string GetHtml(string URL)
        {           
            var request = (HttpWebRequest)WebRequest.Create(URL);
           var response = request.GetResponse();
           using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
           {
             return reader.ReadToEnd();
           } } } }

  調用的接口讀取的編碼是utf-8編碼,直接response.write(json字符串) 在google被瀏覽器自動解碼了不會出現中文亂碼,而在火狐和ie上則會出現中文亂碼,只需要在返回之前給他中文編碼就行了Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM