2017-11-23 1 views
3

Http 트리거 함수에서 다른 Http Trigger 함수를 호출하고 싶습니다. 기본적으로 URL (HTTP 요청)을 통해 트리거 1을 호출하려고하는데, 트리거 1은 트리거 2를 호출합니다. 내가 생각하는 것은 트리거 2에 대한 수정 URL을 넣는 것입니다. 따라서 방금 트리거 1을 호출합니다. 아이디어가 있습니까?Azure HTTP 트리거 함수 호출

using System.Net; 

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{ 
    log.Info("C# HTTP trigger function processed a request."); 

    // parse query parameter 
    string name = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0) 
     .Value; 

    // Get request body 
    dynamic data = await req.Content.ReadAsAsync<object>(); 

    // Set name to query string or body data 
    name = name ?? data?.name; 

    return name == null 
     ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body") 
     : req.CreateResponse(HttpStatusCode.OK, "Hello " + name); 
} 

어떤 도움을 주셔서 감사합니다.

+0

webrequest를 사용하면 작동할까요? 시도했지만 작동하지 않습니다. –

+0

답변에 표준 예를 넣지 마십시오. 대신이 문제를 해결하기 위해 자신이 시도한 것을 보여주십시오. – Mikhail

+0

나는 WebRequest를 시도했다. webRequest = WebRequest.Create ("https://testing.azurewebsites.net/api/HttpTriggerCSharp1?name=testing"); WebResponse webResp = webRequest.GetResponse(); –

답변

2

HttpClient을 사용하면 일반적인 HTTP 요청을 수행 할 수 있습니다. 다음은 호출 함수의 모습입니다.

static HttpClient client = new HttpClient(); 
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req) 
{ 
    var url = "https://<functionapp>.azurewebsites.net/api/Function2?code=<code>"; 
    var response = await client.GetAsync(url); 
    string result = await response.Content.ReadAsStringAsync(); 
    return req.CreateResponse(HttpStatusCode.OK, "Function 1 " + result); 
} 
+0

오류 CS1061 : 'HttpResponseMessage'에 'content'에 대한 정의가없고 'HttpResponseMessage'유형의 첫 번째 인수를 수락하는 확장 메서드 'content'가 없습니다 (지시문이나 어셈블리 참조가 누락 되었습니까?) –

+0

using System.Net; using System.Net.Http; using System.Web.Http.Controllers; 정적 HttpClient 클라이언트 = 새 HttpClient(); public static async 작업 실행 (HttpRequestMessage 요청) { var url = "https : //"; var response = 클라이언트를 기다립니다 .GetAsync (url); 문자열 결과 = 응답을 기다립니다 .Content.ReadAsStringAsync(); return Request.CreateResponse (HttpStatusCode.OK, "기능 1"+ 결과); } –

+0

하늘색 함수에서 위의 오류를 시도했지만 여전히 오류가 발생했습니다. 그걸 도와 주실 수 있습니까? –

관련 문제