Вернуть ответ в виде строки - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь вернуть строковый ответ на запрос POST, используя RestSharp.

Это то, что я пытаюсь

public IRestResponse PostNewLocation(string Name, string Type, Nullable<Guid> ParentId, string Location)
{
    object tmp = new
    {
        name = Name,
        type = Type,
        parentId = ParentId,
        Location = Location
    };
    string json = JsonConvert.SerializeObject(tmp);

    var Client = new RestClient();
    Client.BaseUrl = new Uri(BaseURL);
    var request = new RestRequest(Method.POST);
    request.Resource = string.Format("/Sample/URL?");
    request.AddParameter("application/json", json, ParameterType.RequestBody);
    IRestResponse response = Client.Execute(request);

    Console.Write(response.Content);

    if (!IsReturnedStatusCodeOK(response))
    {
        throw new HttpRequestException("Request issue -> HTTP code:" + response.StatusCode);
    }

    return response.Content;
}

Я получаю следующую ошибку

Ошибка CS0029 Невозможно неявно преобразовать тип 'string' в 'RestSharp.IRestResponse'

в этой строке

return response.Content;

Как можно вернуть ответ stringот RestSharp?

Ответ является строкой GUID.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Либо измените тип возврата PostNewLocation на string, если вы хотите вернуть необработанное содержимое ответа в виде строки:

public string PostNewLocation (
   ...
   return response.Content;
}

Или верните response вместо response.Content, есливы хотите вернуть экземпляр IRestResponse (позже вы можете получить необработанный контент):

public IRestResponse PostNewLocation (
   ...
   return response;
}
0 голосов
/ 21 декабря 2018

Ваш метод возвращает тип IRestResponse.

Вы пытаетесь вернуть CONTENT, представляющий собой строку:

enter image description here

...