2016-05-09 1 views
-3

Надлежащая практика
Как создать отдых функцию апи, которая попросить заголовок, и тело, и какое содержание собираются установить в заголовке и то, что содержимое будет в теле?Как создать функцию, которая запросить заголовок и тело в заднем конце с # REST API

и как назвать эту функцию? (Программно)

ответ

0

Предполагая, что вы используете WebClient для доступа к ресурсу REST в вопросе, вы можете передать WebClient и установить его заголовки в способе, как это:

public static void AddBasicAuthRequestHeaders(WebClient webClient, string userId, string password) { webClient.Headers.Add("Content-Type", "application/json"); webClient.Headers.Add("Accept", "application/json"); webClient.Headers.Add("Authorization", "Basic " + Helper.Base64EncodeString(string.Format("{0}:{1}", userId, password)) + ""); } Поскольку тело запроса передается WebClient, когда он используется, вам не нужно передавать ссылку клиенту в методе, который формирует тело запроса.

public static string BuildRequestBody(){ 
return "{\"Value\":\"?$filter=Name eq '" + objectName + "'&$select=Id\"}";} 

Затем вы можете использовать их следующим образом:

using (WebClient webClient = new WebClient()) 
     { 
      bool isSuccessful = false; 
      string requestBody = BuildRequestBody(); 
      AddBasicAuthRequestHeaders(webClient, "myUser", "myPwd"); 
      try 
      { 
       string responseString = webClient.UploadString(resourceUrl, requestBody); 
       JArray responseArray = JArray.Parse(responseString); 
       isSuccessful = (bool)responseArray[0]["IsSuccessful"]; 
       if (isSuccessful) 
       { 
        objectId = (int)responseArray[0]["RequestedObject"]["Id"]; 
       } 
      } 
      catch (Exception ex) 
      { 
       string logMessage = string.Format("Error retrieving Id for object {0}. Exception: {1}\r\nDetails:{2}", objectName, ex.Message, ex.StackTrace); 
       Helper.Log(LogLevel.Error, logMessage); 
       throw (ex); 
      } 
     } 
     return objectId; 
+0

спасибо, но мой вопрос о фоновым, как запрограммировать эту функцию? как установить его получает параметры «header» и «body» в C# – angel