c\#외부 인터페이스 에 접근 을 요청 하 는 인 스 턴 스 를 보 냅 니 다.
string url = "https://cloud.soei.com.cn/smsapi/sms/verifycode";
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri(url);
//
string token = "9c0025b4aae442bda5498971ec1ab219";
httpClient.DefaultRequestHeaders.Add("token", token);
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
try
{
using (var request = new HttpRequestMessage())
{
var postBody = $"{{\"identity\":\"{identity}\",\"phoneNumber\":\"{phoneNumber}\",\"code\":\"[code]\"}}";
request.Method = HttpMethod.Post;
request.Content = new StringContent(postBody, Encoding.UTF8, "application/json");
var response = await httpClient.SendAsync(request);
//
var retString = await response.Content.ReadAsStringAsync();
JObject items = (JObject)JsonConvert.DeserializeObject(retString);
// , 200
string retCode = items["code"].ToString();
string message = items["message"].ToString();
string data = items["data"].ToString();
JObject items_data = (JObject)JsonConvert.DeserializeObject(data);
string isSuccess = items_data["isSuccess"].ToString();
string data_message = items_data["message"].ToString();
if (isSuccess == "False")
{
retCode = "300";
}
retMessage.retCode = retCode;
retMessage.message = data_message;
}
}
catch (Exception e)
{
retMessage.retCode = "300";
retMessage.message = e.Message.ToString();
}
return retMessage;
}
public static async Task<string> PostData(string path,string serverPath,dynamic param) {
try
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Referer", string.Format("http://{0}", serverPath));
HttpResponseMessage response;
using (HttpContent httpContent = new StringContent(param, Encoding.UTF8))
{
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
//client.DefaultRequestHeaders.Add("x-token", "M3Q_mQEwmn9l4Ly7fM7DxaMSdlYSSup5lfKLztF_VP97Urf");
response = await client.PostAsync(path, httpContent).ContinueWith(res =>
{
return res;
}).Result;
}
if (response != null && response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return string.Empty;
}
}
catch (Exception ex)
{
throw;
}
finally
{
}
}
추가:C\#배경 에서 Http 외부 네트워크 인터페이스 호출(GET,POST)1.get 방법 호출 인터페이스 에서 json 파일 내용 가 져 오기
public void GetFunction()
{
string serviceAddress = "http://222.111.999.444:8687/tttr/usercrd/12/b7e50cb45a?userid=9999";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
Response.Write(retString);
}
이것 은 너무 복잡 해서 갑자기 간단 한 것 을 발견 했다.
using (var client = new WebClient()){
client.Encoding = Encoding.UTF8;
string serviceAddress = urlappend + "cloud/device/data/getErrorData?appId=" + appid + "&accessToken=" + accessToken + "×tamp=" + time + "&deviceIds=" + deviceIds;
var data = client.DownloadString(serviceAddress);
var obj = JsonConvert.DeserializeObject<JObject>(data);
}
//obj
2.post 방법 호출 인터페이스 에서 json 파일 내용 가 져 오기
public void PostFunction()
{
string serviceAddress = "http://222.111.999.444:8687/tttr/usercrd/uuu/12/dfd7e4";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method = "POST";
request.ContentType = "application/json";
string strContent = @"{ ""mmmm"": ""89e"",""nnnnnn"": ""0101943"",""kkkkkkk"": ""e8sodijf9""}";
using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
{
dataStream.Write(strContent);
dataStream.Close();
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string encoding = response.ContentEncoding;
if (encoding == null || encoding.Length < 1)
{
encoding = "UTF-8"; //
}
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
string retString = reader.ReadToEnd();
// josn
JObject jo = JObject.Parse(retString);
Response.Write(jo["message"]["mmmm"].ToString());
}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.