Я написал тестовое приложение для проверки некоторых данных пользователя по внутренней службе RESTful.
Если я делаю запрос напрямую через браузер, я получаю ответ от службы, НО, если я делаю запрос через мой код, в ответе говорится, что мне нужна аутентификация прокси-сервера.
Хотя я мог предоставить настраиваемые пользователем параметры, чтобы можно было передавать параметры прокси-сервера, он просто кажется неправильным, и я не уверен, что мой код неверен.
Ниже приведен фрагмент кода, который завершается с ошибкой, а затем фрагмент с подробностями прокси.
/// <summary>
/// Validate the user details
/// </summary>
/// <returns>True if the user credentials are valid, else false</returns>
public bool ValidateUser()
{
bool valid = false;
try
{
// Create the XML to be passed as the request
XElement root = BuildRequestXML("LOGON");
// Add the action to the service address
Uri serviceReq = new Uri(m_ServiceAddress + "?obj=LOGON");
// Make the RESTful request to the service using a POST
using (HttpResponseMessage response = new HttpClient().Post(serviceReq, HttpContentExtensions.CreateDataContract(itrent)))
{
// Retrieve the response for processing
response.Content.LoadIntoBuffer();
string returned = response.Content.ReadAsString();
// TODO: parse the response string for the required data
}
}
catch (Exception ex)
{
Log.WriteLine(Category.Serious, "Unable to validate the User details", ex);
valid = false;
}
return valid;
}
Теперь для чанка, который работает, но имеет проблемы ...
/// <summary>
/// Validate the user details
/// </summary>
/// <returns>True if the user credentials are valid, else false</returns>
public bool ValidateUser()
{
bool valid = false;
try
{
// Create the XML to be passed as the request
XElement root = BuildRequestXML("LOGON");
// Add the action to the service address
Uri serviceReq = new Uri(m_ServiceAddress + "?obj=LOGON");
// Create the client for the request
using (HttpClient client = new HttpClient())
{
// Create a proxy to get around the network issues and assign it to the http client
WebProxy px = new WebProxy( <Proxy server address>, <Proxy Server Port> );
px.Credentials = new NetworkCredential( <User Name>, <Password>, <Domain> );
client.TransportSettings.Proxy = px;
// Mare the RESTful request
HttpResponseMessage response = client.Post(serviceReq, HttpContentExtensions.CreateDataContract(root));
// Retrieve the response for processing
response.Content.LoadIntoBuffer();
string returned = response.Content.ReadAsString();
// TODO: parse the response string for the required data
}
}
catch (Exception ex)
{
Log.WriteLine(Category.Serious, "Unable to validate the User details", ex);
valid = false;
}
return valid;
}
Все предложения принимаются с благодарностью.
Приветствия.