如何解决“文件上传返回JSON数据,在IE下提示下
dataType
期望返回的数据类型。null、“xml”、“script”或者“json”其中之一。dataType提供一种方法,它规定了怎样处理服务器的响应。这个被直接地反映到jQueryhttpData方法中去。下面的值被支持:
'xml':如果dataType == 'xml',将把服务器响应作为XML来对待。同时,如果“success”回调方法被指定, 将传回responseXML值。
'json':如果dataType == 'json', 服务器响应将被求值,并传递到“success”回调方法,如果它被指定的话。
'script':如果dataType == 'script', 服务器响应将求值成纯文本。
默认值:null(服务器返回responseText值)
服务器返回xml
只需要加上 ![CDATA[ 既可以LE
using (SqlDataReader dr = SqlHelperExecuteReader(connstr, CommandTypeText, sql))
{
while(drRead())
{
xmlstr += "<book><author>" + drGetInt32(0) + "</author><title><![CDATA[" + drGetString(1) + "]]></title></book>";
}
}
如果需要返回 json 呢 ?
using (SqlDataReader dr = SqlHelperExecuteReader(connstr, CommandTypeText, sql))
{
while (drRead())
{
xmlstr += "{author:'" + drGetInt32(0) + "',title:'" + drGetString(1) + "'},";
}
}
======================
我的 drGetString(1) 字段里面包含特殊字符:
实在服务器 端处理,还是 客户端处理 ?
insert into test2 values(1,'天山>寒雪')
insert into test2 values(2,'天山''寒雪')
insert into test2 values(3,'天山"寒雪')
insert into test2 values(4,'天山<寒雪')
insert into test2 values(5,'天山&寒雪')
public static string GetHTTPInfo(string urlPath, string eCode, int millisecond)
{
string str = null;
HttpWebResponse response = null;
StreamReader reader = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequestCreate(urlPath);
requestTimeout = millisecond;
response = (HttpWebResponse)requestGetResponse();
reader = new StreamReader(responseGetResponseStream(), SystemTextEncodingGetEncoding(eCode));
str = readerReadToEnd();
}
catch
{
str = "";
}
finally
{
if (reader != null)
{
readerClose();
readerDispose();
}
if (response != null)
{
responseClose();
}
}
return str;
}
你这个应该是两个问题,
1、如何从http返回json
2、如何使用C#读取从http返回的json
解决方案:
问题1:http返回json可以使用webapi技术,自己开发一个webapi接口用于从数据库读取并提供数据。
问题2:首先要说一下,http的json如果是前端程序还是用javascript读取比较好。如果是后端的话,只能使用C#读取,使用HttpClient或者HttpWebRequest。
HttpClient方式:
using (WebClient client = new WebClient())
{
clientHeaders["Type"] = "GET";
clientHeaders["Accept"] = "application/json";
clientEncoding = EncodingUTF8;
clientDownloadStringCompleted += (senderobj, es) =>
{
var obj = esResult;
};
clientDownloadStringAsync("http://localhost:41558/api/Demo");
}
HttpWebRequest方式:略(写上之后百度页面报错!!!)
另外http方式的调用,分为get、post、put等方式。需要注意服务器端的情况。
上述例子引用自http://wwwcnblogscom/MuNet/p/6732338html
0条评论