C\#Http Post 방식 으로 JSon 데이터 문자열 을 전달 하여 웹 서 비 스 를 호출 합 니 다.
얼마 전에 ERP 시스템 을 만 들 었 는데 시스템 기능 이 완선 되면 서 클 라 이언 트(CS 모델)가 점점 비대 해 졌 다.이 제 는 비 즈 니스 논리 층 아래 부분 과 인터페이스 층 을 분리 해 웹 서 비 스 를 이용 하려 고 합 니 다.C\#에서 인용 자 를 직접 추가 하여 웹 서 비 스 를 호출 하 는 방식 이 원활 하지 않 기 때문에 Http 요청 을 수 동 으로 보 내 는 방식 으로 웹 서 비 스 를 호출 합 니 다.마지막 으로 Post 방식 으로 웹 서 비 스 를 호출 하 는 것 을 선택 하여 안전성 과 효율 은 고려 하지 않 습 니 다.사용 을 배 우 는 과정 에서 많은 문제 가 발생 했 고 오 랜 시간 이 걸 려 서 해결 되 었 습 니 다.인터넷 에 관련 된 댓 글 이 매우 적 습 니 다.만약 에 여러분 이 사용 하 는 과정 에서 해결 하기 어 려 운 문제 가 있 으 면 저 를 찾 아 보 세 요.
전제 조건
Post 방식 으로 웹 서 비 스 를 호출 하려 면 서비스 항목 프로필 Web.config 에 Http 프로 토 콜 을 사용 하 는 설정 을 추가 해 야 합 니 다.
웹 서비스 인터페이스 방법
[WebMethod]
public string Project(string paramaters)
{
return paramaters;
}
구현 코드
public string Post(string methodName, string jsonParas)
{
string strURL = Url + "/" + methodName;
// HTTP
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
//Post
request.Method = "POST";
//
request.ContentType = "application/x-www-form-urlencoded";
// , URL
// JsonParas( :[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]),
// ( :"paramaters=[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]"),
// paramaters WebService , Json
// Url
string paraUrlCoded = System.Web.HttpUtility.UrlEncode("paramaters");
paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(jsonParas);
byte[] payload;
// Json
payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
// ContentLength
request.ContentLength = payload.Length;
// ,
Stream writer;
try
{
writer = request.GetRequestStream();// Stream
}
catch (Exception)
{
writer = null;
Console.Write(" !");
}
//
writer.Write(payload, 0, payload.Length);
writer.Close();//
String strValue = "";//strValue http
HttpWebResponse response;
try
{
//
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = ex.Response as HttpWebResponse;
}
Stream s = response.GetResponseStream();
// XML ,XML Content Json
XmlTextReader Reader = new XmlTextReader(s);
Reader.MoveToContent();
strValue = Reader.ReadInnerXml();// Content Json
Reader.Close();
s.Close();
return strValue;// Json
}
Url 형식 샘플:"http://59.68.29.106:8087/IFT_Project.asmx"methodName 인 자 는"Project"입 니 다.
JSonParas 는 C\#JavaScriptSerializer 를 사용 하여 List
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.