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;
                }
            }
Пример #2
0
        // 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.");
        }