как вы даете ответ json файлу?Дамп json-ответ на файл
В принципе, я не могу попасть непосредственно в api, поэтому по причинам отладки я хочу сбросить ответ на файл на сервере хостинга, а затем загрузить файл, где я могу работать с ним.
как вы даете ответ json файлу?Дамп json-ответ на файл
В принципе, я не могу попасть непосредственно в api, поэтому по причинам отладки я хочу сбросить ответ на файл на сервере хостинга, а затем загрузить файл, где я могу работать с ним.
Чтобы просто сбросить в файл сделать это:
[... //Do your WebRequest...]
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
//Here you got the JSON as string:
var result = streamReader.ReadToEnd()
// Write the text to a new file named "Response.json".
File.WriteAllText(@"C:\temp\Response.json", result);
return result;
}
Примечание это приведет к перезаписи ваш файл накануне вы получите ответ. Чтобы предотвратить добавление метки времени в имя файла.
//This will (atleast every second) create a unique filename
string filePath = [email protected]"C:\temp\Response{DateTime.Now.ToString("ddMMyyyyHHmmss")}";
Edit:
Чтобы ваши файлы передаются в папку bin\Debug
вы можете использовать следующее:
string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Response{DateTime.Now.ToString("ddMMyyyyHHmmss")}");
Спасибо Nudity, глупый вопрос здесь, но как бы вы отработали путь к файлу, если веб-сайт размещен на веб-сервере хостинговой компании? не будет ли это File.WriteAllText («Response.json», result); Затем файл будет помещен в папку отладки? – Tom
@ То, что я думаю, так: D Должно быть место, где когда-либо работает ваше приложение. Просто проверьте это: D –
@ У вас получилось работать? –
Вы можете определить пользовательские DelegatingHandler
:
public class LogResponseHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var response = await base.SendAsync(request, cancellationToken);
var responseString = await response.Content.ReadAsStringAsync();
//log response string to file
return response;
}
}
Зарегистрируйте в HttpConfiguration
config.MessageHandlers.Add(new LogResponseHandler());
Спасибо, Алексей, я никогда не работал с DelegatingHandler – Tom
Он должен быть введен в конвейер веб-api и будет записывать ** все ** ответы этого api. –
Это не как сайт, который вы должны дать краткий пример за то, что вы уже пытались решить ваши сообщения об ошибках и код отладки! – rogue39nin