alfinete
Power Member
boas tardes
estou com um problema a executar um serviço rest publicado na minha maquina local no IIS atraves de android Xamarim .net .
este rest corre bem atraves de post man na minha maquina local.
Url - http://Xpto.com:90/api/TaskOnBiz/Int/Post/TesteInterno
erros ao fim do post
não sei se isto ocorre de o serviço não executar numa rede externa
ou é alguma coisa mal nos métodos que o executam
Agradecia uma ajuda para esta qestão
Execução dos metodos acima descritos
__________________________________________________________________________________________________
Erro da execução do Callrest
___________________________________________________________________________________________
Erro da execução do Callrest2
___________________________________________________________________________________________
estou com um problema a executar um serviço rest publicado na minha maquina local no IIS atraves de android Xamarim .net .
este rest corre bem atraves de post man na minha maquina local.
Url - http://Xpto.com:90/api/TaskOnBiz/Int/Post/TesteInterno
erros ao fim do post
não sei se isto ocorre de o serviço não executar numa rede externa
ou é alguma coisa mal nos métodos que o executam
Agradecia uma ajuda para esta qestão
Código:
public string Callrest2()
{
var request = HttpWebRequest.Create("http://Xpto.com:90/api/TaskOnBiz/Int/Post/TesteInterno");
string User = "Xpto";
string pass = "Xpto";
string value = string.Empty ;
HttpWebResponse Resp = null;
string Error = string.Empty;
try
{
SetBasicAuthHeader(request, User, pass);
string postData = "{\"Entidade\":{\"CodPostal\":\"1245-125\",\"DescrPostal\":\"Portalegre\",\"EntidadeId\":\"1\",\"Localidade\":\"Portalegre\",\"Morada\":\"Rua 1º de Maio\",\"Mif\":\"123564789\",\"Nome\":\"José ALfredo ribeiro\"}}";
request.ContentType = "application/json";//"application/x-www-form-urlencoded"
request.Method = WebRequestMethods.Http.Post;
request.ContentLength = Encoding.UTF8.GetByteCount(postData);
Stream dataStream = request.GetRequestStream();
dataStream.Write(Encoding.UTF8.GetBytes(postData), 0, Encoding.UTF8.GetByteCount(postData));
dataStream.Close();
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode != HttpStatusCode.OK)
{
Error = string.Format("ERROR: Server status code: {0}", response.StatusCode);
}
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
var content = reader.ReadToEnd();
value = content.ToString();
if (string.IsNullOrWhiteSpace(content))
{
Error = string.Format("ERROR: Empty response.");
}
else
{
Error = string.Format("Response: {0}", content);
}
}
}
}
catch (Exception ex)
{
Error = ex.Message;
}
return value;
}
public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
string authInfo = userName + ":" + userPassword;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
request.Headers["Authorization"] = "Basic " + authInfo;
}
private async Task<string> Callrest (){
HttpResponseMessage response = null;
string Url = "http://Xpto.com:90/api/TaskOnBiz/Int/Post/TesteInterno";//IISLOCAL
string Json = "{\"Entidade\":{\"CodPostal\":\"1245-125\",\"DescrPostal\":\"Portalegre\",\"EntidadeId\":\"1\",\"Localidade\":\"Portalegre\",\"Morada\":\"Rua 1º de Maio\",\"Mif\":\"123564789\",\"Nome\":\"José ALfredo ribeiro\"}}";
// RootObject RootData = JsonConvert.DeserializeObject<RootObject>(Json);
string User = "Xpto";
string pass = "Xpto";
string value = string.Empty;
try
{
NetworkCredential MyCred = new NetworkCredential
{
UserName = User
,Password = pass
};
var handler = new HttpClientHandler { Credentials = MyCred };
using (var client = new HttpClient(handler))
{
// cria o conteudo da requisição e define o tipo Json
var content = new StringContent(Json, Encoding.UTF8, "application/json");
// envia a requisição POST
response = await client.PostAsync(Url, content);
// Se ocorrer um erro lança uma exceção
// result.EnsureSuccessStatusCode();
// processa a resposta
if (response.IsSuccessStatusCode)
{
value = await response.Content.ReadAsStringAsync();
}
// var task = Task.Run(async () => await result.Content.ReadAsStringAsync());
}
}
catch (Exception ex)
{
string err = ex.Message;
}
return value;
}
Execução dos metodos acima descritos
__________________________________________________________________________________________________
Código:
//TesteChamaREst
// Task<string> value = Task.Run(async () => await Callrest());
string Resp = Callrest2();
Erro da execução do Callrest
___________________________________________________________________________________________
Código:
{StatusCode: 404, ReasonPhrase: 'Not Found',
Version: 1.1, Content: System.Net.Http.StreamContent,
Headers:{Cache-Control: privateServer: Microsoft-IIS/8.5Set-Cookie:
ASP.NET_SessionId=pe0z2t5xogix2o2quez2d0xb;
path=/; secure; HttpOnly; SameSite=LaxX-AspNet-Version: 4.0.30319X-Powered-By: ASP.NETX-Frame-Options:
SAMEORIGINDate: Mon, 23 Aug 2021 10:41:29 GMTX-CDN: ImpervaTransfer-Encoding:
chunkedX-Iinfo: 14-98150162-97929519
sNNN RT(1629715285437 3897) q(0 0 0 -1) r(1 1) U11Content-Type: text/html; charset=utf-8}}
Erro da execução do Callrest2
___________________________________________________________________________________________
Código:
The remote server returned an error: (404) Not Found.
Última edição: