브라우저 또는 Postman을 통해 만족스럽게 URL로 호출 할 수있는 Azure HTTP 트리거 함수가 있습니다. C #에서 어떻게 호출합니까?
기능은
public static class FunctionDemo
{
[FunctionName("SayHello")]
public static async Task<IActionResult> SayHello(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function 'SayHello' processed a request.");
return new OkObjectResult("Hello world");
}
}
그것을 사용하는 내 코드는
private void button1_Click(object sender, EventArgs e)
{
String url = "https://<app-name>.azurewebsites.net/api/SayHello";
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string reply = reader.ReadToEnd();
label1.Text = reply;
dataStream.Close();
}
request.GetResponse () 호출이 실패하고 Visual Studio에서 다음을보고합니다.
System.Net.WebException - The underlying connection was closed: An unexpected error occurred on a send.
Inner Exception 1:
IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
Inner Exception 2:
SocketException: An existing connection was forcibly closed by the remote host
당 이 와 이 SO 답변, 그것은 보안 프로토콜은 클라이언트와 당신이 보는 것을 따라서는 오류를 던지고 서버간에 일치되지 않을 경우가 있습니다. 를 호출하기 전에 클라이언트 프레임 워크가 지원할 수있는 Tsl 버전으로 securityProtocol을 설정해 볼 수 있습니다 request.GetResponse()
.
이 같은-
WebRequest request = WebRequest.Create(url);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls |
SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls12;
WebResponse response = request.GetResponse();
또한 이 MS 발언에 따라 HttpClient
대신 사용으로 이동해야합니다.WebRequest
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다