用 HttpWebRequest 來抓取資料 ,以下程式碼試試看傳值可以用 ?objid=a1234 一樣可以導回資料
string _strReturnVaues = string.Empty;
if (_strContentTYpe == null || _strContentTYpe.Length == 0)
{
_strContentTYpe = "text/html";
}
try
{
HttpWebRequest _HttpWebRequest = (HttpWebRequest)WebRequest.Create(_strWebSite + _strWebFilesNAME);
_HttpWebRequest.Method = WebRequestMethods.Http.Get;
_HttpWebRequest.ContentType = _strContentTYpe; //"application/json";
using (var _UsingResponse = (HttpWebResponse)_HttpWebRequest.GetResponse())
{
if (_UsingResponse.StatusCode == HttpStatusCode.OK)
{
using (var _varStream = _UsingResponse.GetResponseStream())
{
using (var _varReader = new StreamReader(_varStream))
{
_strReturnVaues = _varReader.ReadToEnd();
}
}
}
else
{
_ReadErrorMessage = "讀取失敗:" + _UsingResponse.StatusCode.ToString();
_ReadErrorMessage += "請確定您要讀取的 " + _strWebSite + _strWebFilesNAME + " 是否有存在!!";
}
}
}
catch (Exception onerror)
{
_ReadErrorMessage = onerror.Message;
//指定為空白的內容
_strReturnVaues = "";
}
感謝!!已經可以 Work 了,剩下只需解決 Json 資料轉換問題即可
//載入資料 >> 預設值
Newtonsoft.Json.Linq.JObject _JObjectReadInfo = JObject.Parse(@"{'Source':'Default'}");
//載入 json
_JObjectReadInfo = JObject.Parse(JSON Source);
//取得資料
_JObjectReadInfo["你的 JSON 名稱"]
另外可以參考這篇 ,也有相關的介紹
https://www.itread01.com/content/1544814563.html
如果你是用 SQL 2016 以上,可以將查詢的資料直接導出 JSON 格式,不用宣告一堆強型別的 Class 了,ASHX 直接匯出 SQL JSON 的內容就省很多事情。
轉 JSON 格式 FOR JSON PATH,
(輸出 Null)INCLUDE_NULL_VALUES, (排除 [] 格式)WITHOUT_ARRAY_WRAPPER
Select RowName From TableName
FOR JSON PATH,INCLUDE_NULL_VALUES
用WebClient+POST
using (WebClient wc = new WebClient())
{
try
{
wc.Encoding = Encoding.UTF8;
NameValueCollection nc = new NameValueCollection();
nc["id"] = "aaa";
nc["pw"] = "bbb";
byte[] bResult = wc.UploadValues(Config.PostURL, nc);
string resultXML = Encoding.UTF8.GetString(bResult);
}
catch (WebException ex)
{
throw new Exception("無法連接遠端伺服器");
}
}
引用出處
https://blog.miniasp.com/post/2010/01/23/Emulate-Form-POST-with-WebClient-class
JSON你可以到nuget下載Newtonsonft.JSON
用法蠻簡單的
using Newtonsoft.Json;
void main()
{
var dbdata = myContextData.XTABLE.Where(....);
string jsonstr = JsonConvert.SerializeObject<XTABLE>(dbdata);
var obj = JsonConvert.DeserializeObject<XTABLE>(jsonstr);
}
//假設你有XTABLE這個Model class在
有個小疑問,不管使用 System.Web.Script.Serialization 或者 Newtonsonft.JSON ,作反序列時,如果原 Json String 包含多筆資料(物件),反序列回來時,以此段程式為例,obj會是物件陣列?因為找 Google 的範例,多為單筆資料