internal async void basicValidateUser(string argUrl, string argUrlParam, string argUser, string argPwd) { string myUrl = Utility.urlBuild(argUrl, argUrlParam); snh.HttpClient myHttpClient = new snh.HttpClient(); myHttpClient.BaseAddress = new Uri(myUrl); // Add an Accept header for JSON format. myHttpClient.DefaultRequestHeaders.Accept.Add( new snhHeaders.MediaTypeWithQualityHeaderValue("application/json") ); //myHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); byte[] myByteBuff = Encoding.ASCII.GetBytes(argUser + ":" + argPwd); myHttpClient.DefaultRequestHeaders.Authorization = new snhHeaders.AuthenticationHeaderValue("Basic", Convert.ToBase64String(myByteBuff)); // List data response. snh.HttpResponseMessage myHttpResponse = myHttpClient.GetAsync(myUrl).Result; if (myHttpResponse.IsSuccessStatusCode) { // Parse the response body. Blocking! string myJsonData = await myHttpResponse.Content.ReadAsStringAsync(); jsonResult myResultObj = nj.JsonConvert.DeserializeObject <jsonResult>(myJsonData); Utility.uUserId = myResultObj.result.ToString(); Utility.uIsValidUser = true; } else { Utility.uIsValidUser = false; } }
// http 蓝汛CDN public string httpRequest(string type, string url, string jsonContent) { // string resultStr = "{\"r_id\": \"568f5ae9949e6b7086f46496\" }"; // jsonResult result = JsonConvert.DeserializeObject<jsonResult>(resultStr); //eg: //type = "POST"; //url = "http://sqsj.cdn.7road.net/update/flmobile/yybb/android/VersionUpdate/versions"; string urlAPI, responseFromServer; if (type == "POST") { try { jsonContent = "{\n"; jsonContent = jsonContent + String.Format("\"username\" : \"{0}\", \"password\" : \"{1}\", \"task\" : ", PackageSubVM.Instance.CDNUserName, PackageSubVM.Instance.CDNPassword); jsonContent = jsonContent + "{\n"; jsonContent = jsonContent + String.Format("\"urls\" : ["); string[] urls = url.Split(';'); foreach (var urlStr in urls) { jsonContent = jsonContent + String.Format("\n\"{0}\",", urlStr); } jsonContent = jsonContent.TrimEnd(','); jsonContent = jsonContent + "\n]}\n}"; urlAPI = "https://r.chinacache.com/content/refresh"; WebRequest request = WebRequest.Create(urlAPI); request.Method = type; string postData = jsonContent; byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentType = "application/json"; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse response = request.GetResponse(); dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); responseFromServer = reader.ReadToEnd(); Console.WriteLine(((HttpWebResponse)response).StatusDescription); Console.WriteLine(responseFromServer); MessageBox.Show("刷新提交结果:" + ((HttpWebResponse)response).StatusDescription); PackageSubVM.Instance.updateDescription("刷新提交结果:" + ((HttpWebResponse)response).StatusDescription); reader.Close(); dataStream.Close(); response.Close(); } catch (Exception e) { MessageBox.Show(e.Message); return("False"); } return(responseFromServer); } else if (type == "GET") { jsonResult result = JsonConvert.DeserializeObject <jsonResult>(jsonContent); urlAPI = "https://r.chinacache.com/content/refresh/" + result.id; urlAPI = urlAPI + String.Format("?username={0}&password={1}&r_id={2}", PackageSubVM.Instance.CDNUserName, PackageSubVM.Instance.CDNPassword, result.id); string res; bool bIsOK = false; using (WebClient client = new WebClient()) { try { Console.WriteLine("查询刷新url:" + urlAPI); PackageSubVM.Instance.updateDescription("查询刷新url:" + urlAPI); res = client.DownloadString(urlAPI); Console.WriteLine("刷新结果:" + res); requestResult[] reqResultList = JsonConvert.DeserializeObject <requestResult[]>(res); foreach (var reqRes in reqResultList) { if (reqRes.r_id == result.id) { string errorMsg = "未知错误:" + reqRes.urlStatus[0].code + ", " + reqRes.status; if (errorDict.ContainsKey(reqRes.urlStatus[0].code)) { errorMsg = errorDict[reqRes.urlStatus[0].code]; if (reqRes.urlStatus[0].code == "200") { bIsOK = true; } } //MessageBox.Show(errorMsg); PackageSubVM.Instance.updateDescription("刷新结果:" + errorMsg); } } } catch (Exception e) { MessageBox.Show(e.Message); return("False"); } } return(bIsOK.ToString()); } return("error type."); }