저는 HTTP 게시물을 통해 텍스트 메시지를 Slooce Tech API에 보내도록 응용 프로그램을 작성 중입니다. 응용 프로그램은 많은 양의 텍스트 메시지를 보내야하므로 속도를 최적화하려고합니다.HTTP Post Speed를 가속화하십시오.
아래 코드의 두 번째 조각 나는 현재 게시물을 전송하기 위해 사용하고있는 방법이다. 첫 번째 코드를 작성하여 HTTPWebResponse
을 빠뜨리려고합니다.
문제는 새로운 방법이 실제로 느린 오히려 실행 0.25 초를 복용보다, 그것은 문제가 발생할 것입니다 때로는 초 이상 걸리는 것입니다. 그것은 그 또는이 응용 프로그램의 속도를 개선하기위한 다른 팁을 왜
는 아는 사람 있나요? 나는 Request.Proxy=null
를 추가했으며, 조금 더 빨라졌습니다.
감사합니다.
public void QuickSend()
{
XML = "<message id=\"" + lMessageID + "\"><partnerpassword>" + PartnerPassword + "</partnerpassword><content>" + sMessage + "</content></message>";
URL = "http://sloocetech.net:****/spi-war/spi/" + PartnerID + "/" + sRecipient + "/" + Keyword + "/messages/mt";
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(URL);
RequestBytes = System.Text.Encoding.ASCII.GetBytes(XML);
Request.Method = "POST";
Request.ContentType = "text/xml;charset=utf-8";
Request.ContentLength = RequestBytes.Length;
RequestStream = Request.GetRequestStream();
RequestStream.Write(RequestBytes, 0, RequestBytes.Length);
RequestStream.Close();
}
그리고 여기에 원래 코드 :
수정 된 코드는 모든
public XDocument SendSMS()
{
XML = "<message id=\""+ lMessageID +"\"><partnerpassword>" + PartnerPassword + "</partnerpassword><content>" + sMessage + "</content></message>";
URL = "http://sloocetech.net:****/spi-war/spi/" + PartnerID + "/" + sRecipient + "/" + Keyword + "/messages/mt";
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(URL);
RequestBytes = System.Text.Encoding.ASCII.GetBytes(XML);
Request.Method = "POST";
Request.ContentType = "text/xml;charset=utf-8";
Request.ContentLength = RequestBytes.Length;
RequestStream = Request.GetRequestStream();
RequestStream.Write(RequestBytes, 0, RequestBytes.Length);
RequestStream.Close();
HttpWebResponse Resp = (HttpWebResponse)Request.GetResponse();
oReader = new StreamReader(Resp.GetResponseStream(), System.Text.Encoding.Default);
string backstr = oReader.ReadToEnd();
oReader.Close();
Resp.Close();
Doc = XDocument.Parse(backstr);
return Doc;
}
'Request.GetResponse()'는 웹 요청에서 작성한 데이터를 실제로 전송하기 때문에 제외 할 수 없습니다. –
'GetResponse' 코드 주위에'using' 문을 써야합니다. 이렇게하면'Close' 문을 생략 할 수도 있습니다. – Matthew
당신은 높은 처리량을 달성하기 위해 병렬로 여러 개의 POST (즉, async/TPL/ThreadPool/...)를 보내야합니다 ... – Yahia