2017-12-01 1 views
0

Ich versuche, Daten von Link A an azure Funktionen übergeben, die nur die Daten von Link A erhalten und diese Daten selbst zurückgeben müssen.Azure-Funktion erhalten Json von der Website und nur übergeben

So bekomme ich Json Daten von A, dass Daten von einer API bedient werden. Jetzt habe ich eine azure Funktion und ich muss die Daten von A nehmen und req.CreateResponse(HttpStatusCode.OK) zurückgeben, mit den Daten von A. Das muss sichtbar sein (genau das gleiche) auf B und B hier ist meine Azure URL ...

Wie kann das tun?

Ich versuchte, ein await req.Content.ReadAsStringAsync() zu tun, aber das eine Sache nicht tun ..

wie diese So sieht meine Funktion App jetzt:

[FunctionName("CreateRadioAPI")] 
     public static async Task<HttpResponseMessage> CreateRadioAPIAsync([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "v1/radio/stats/info")]HttpRequestMessage req, TraceWriter log) 
     { 
      try 
      { 
       //dynamic body = await req.Content.ReadAsStringAsync(); 

       return req.CreateResponse(HttpStatusCode.OK); 
      } 
      catch (Exception ex) 
      { 
       log.Error("An error occured: ", ex); 
       return req.CreateResponse(HttpStatusCode.InternalServerError); 
      } 
     } 

In hier, ich möchte, dass die zurück Daten von der anderen Verbindung, die wie folgt aussieht:

{ 
    "data": { 
     "listeners": 65, 
     "song": "Ofenbach - Katchi (Ofenbach vs. Nick Waterhouse)", 
     "live_dj": ".-RRxd-.", 
     "mini_rooster": [], 
     "song_history": [ 
      { 
       "playedat": 1512154754, 
       "title": "Ofenbach - Katchi (Ofenbach vs. Nick Waterhouse)", 
       "metadata": { 
        "tit2": "Ofenbach - Katchi (Ofenbach vs. Nick Waterhouse)" 
       } 
      }, 
      { 
       "playedat": 1512154548, 
       "title": "Cam'ron - Hey Ma", 
       "metadata": { 
        "tit2": "Cam'ron - Hey Ma" 
       } 
      }, 
      { 
       "playedat": 1512154335, 
       "title": "San Holo - I Still See Your Face", 
       "metadata": { 
        "tit2": "San Holo - I Still See Your Face" 
       } 
      }, 
      { 
       "playedat": 1512151761, 
       "title": "Sunnieday Mixtape Dyna (5)", 
       "metadata": { 
        "tit2": "Sunnieday Mixtape Dyna (5)" 
       } 
      }, 
      { 
       "playedat": 1512151162, 
       "title": "Merk & Kremont - Sad Story (Out Of Luck)", 
       "metadata": { 
        "tit2": "Merk & Kremont - Sad Story (Out Of Luck)" 
       } 
      }, 
      { 
       "playedat": 1512150866, 
       "title": "Martin Garrix - So Far Away", 
       "metadata": { 
        "tit2": "Martin Garrix - So Far Away" 
       } 
      }, 
      { 
       "playedat": 1512150701, 
       "title": "John de Sohn - Hum With Me", 
       "metadata": { 
        "tit2": "John de Sohn - Hum With Me" 
       } 
      }, 
      { 
       "playedat": 1512150345, 
       "title": "Zak Abel - All I Ever Do (Is Say Goodbye)", 
       "metadata": { 
        "tit2": "Zak Abel - All I Ever Do (Is Say Goodbye)" 
       } 
      }, 
      { 
       "playedat": 1512150139, 
       "title": "Dua Lipa - New rules", 
       "metadata": { 
        "tit2": "Dua Lipa - New rules" 
       } 
      }, 
      { 
       "playedat": 1512149995, 
       "title": "Garmiani - Fogo", 
       "metadata": { 
        "tit2": "Garmiani - Fogo" 
       } 
      } 
     ] 
    } 
} 
+1

Bitte geben Sie eine [mcve] anstelle von zufälligen Codezeilen ein. –

+0

Ich habe die Codes aktualisiert – Robin

Antwort

2

ich nehme an, Sie wollen etwas wie folgt aus:

private static HttpClient client = new HttpClient(); 

[FunctionName("CreateRadioAPI")] 
public static async Task<HttpResponseMessage> CreateRadioAPIAsync([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "v1/radio/stats/info")]HttpRequestMessage req, TraceWriter log) 
{ 
    try 
    { 
     var responseFromA = await client.GetAsync("https://yoursite.com/a.json"); 
     var body = await responseFromA.Content.ReadAsStringAsync(); 
     var response = req.CreateResponse(HttpStatusCode.OK); 
     response.Content = new StringContent(body, Encoding.UTF8, "application/json"); 
     return response; 
    } 
    catch (Exception ex) 
    { 
     log.Error("An error occured: ", ex); 
     return req.CreateResponse(HttpStatusCode.InternalServerError); 
    } 
} 
+0

Jep, das war was ich brauchte, außer ich habe ein cloudflare Problem (Captcha), das kann nicht behoben werden Ich denke (ich habe keinen Zugriff auf cloudflare) ... – Robin

Verwandte Themen