alfinete
Power Member
estamos em vs 2010
Tenho uma Solução Chamda RestService com 4 projectos :
· Generic.RestService (Funções Genericas / classes de dados)
· RestService (servico)
· Test.RestService (teste do serviço em windows forms)
· WebTest.restservice (teste do serviço em web form)
Generic.restService
____________________________________________________________
classe referente aos dados do Header a receber no serviço
HeaderData.cs
RestService
___________________________________________________________
Tem a claase referente a função do svc "RestServiceImpl.svc"
Classe Generic.vs
[ tem um metodo que me devolve o valor de um determinado Header referente ao serviço]
IRestServiceImpl.cs
[interface da chamada da função acima]
WebTest.RestService
[Projecto web de teste de debug do web service]
Tem uma refeência ao nosso serviço
___________________________________________________________
consigo fazer debug ao serviço entrar na função Getjson.
o meu objectivo é inserir novos valores de header no rest service em causa
ja ando a um a 2 dias nisto farto de procurar no google , mas não encontro nehuma solução que me resolva este problema.
Agradecia uma ajuda
obrigado
Tenho uma Solução Chamda RestService com 4 projectos :
· Generic.RestService (Funções Genericas / classes de dados)
· RestService (servico)
· Test.RestService (teste do serviço em windows forms)
· WebTest.restservice (teste do serviço em web form)
Generic.restService
____________________________________________________________
classe referente aos dados do Header a receber no serviço
HeaderData.cs
Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
namespace Generic.RestService
{
[DataContract]
public class HeaderData
{
[DataMember]
public string User { get; set; }
[DataMember]
public string Password { get; set; }
[DataMember]
public string Bodytoken { get; set; }
[DataMember]
public string Provider { get; set; }
[DataMember]
public string Catalogo { get; set; }
[DataMember]
public string Json { get; set; }
}
}
RestService
___________________________________________________________
Tem a claase referente a função do svc "RestServiceImpl.svc"
Código:
public string GetJson()
{
string Dados = string.Empty;
HeaderData HDData = new HeaderData();
// le os headers referente ao serviço
HDData.User = Generic.GetValueHeader("User");
HDData.Password = Generic.GetValueHeader("Password");
HDData.Provider = Generic.GetValueHeader("Provider");
HDData.Catalogo = Generic.GetValueHeader("Catalogo");
HDData.Bodytoken = Generic.GetValueHeader("Body_token");
byte[] byteArrayB64 = Convert.FromBase64String(HDData.Bodytoken);
HDData.Json = System.Text.Encoding.UTF8.GetString(byteArrayB64);
//HeaderData HD = new HeaderData();
//HD.Bodytoken = "eyJOdW1GYWN0dXJhIjoiQUFBQTEyMzQ1IiwiTklGIjoiMjEyNTE1ODc0IiwiTm9tZSI6IkpvYW9TaWx2YSJ9";
//HD.Catalogo = "Catalogo";
//HD.Provider = "provider";
//HD.Password = "pass";
//HD.User = "user";
// ExnternalAccount model = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<ExnternalAccount>(AccountInfo);
return Dados;
}
Classe Generic.vs
[ tem um metodo que me devolve o valor de um determinado Header referente ao serviço]
Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel.Web;
using System.Net;
namespace RestService
{
public static class Generic
{
public static string GetValueHeader(string headerText)
{
string ValueHeader = string.Empty;
try
{
IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest;
WebHeaderCollection headers = request.Headers;
ValueHeader = headers[headerText];
return ValueHeader == null ? string.Empty : ValueHeader;
}
catch
{
return string.Empty;
}
}
}
}
IRestServiceImpl.cs
[interface da chamada da função acima]
Código:
using System.ServiceModel;
using System.ServiceModel.Web;
namespace RestService
{
[ServiceContract]
public interface IRestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/GetJson", ResponseFormat = WebMessageFormat.Json)]
string GetJson();
}
}
WebTest.RestService
[Projecto web de teste de debug do web service]
Tem uma refeência ao nosso serviço
Código:
protected void btnTestar_Click(object sender, EventArgs e)
{
RestServiceImplClient broker = new RestServiceImplClient();[/B]
//using (RestServiceImplClient client = new RestServiceImplClient())
//{
// using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
// {
// OperationContext.Current.IncomingMessageHeaders.Add(header);
// HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
// httpRequestProperty.Headers.Add("myCustomHeader", "Custom Happy Value.");
// httpRequestProperty.Headers.Add(HttpRequestHeader.UserAgent, "my user agent");
// OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = //httpRequestProperty;
// }
//}
broker.GetJson();
}
consigo fazer debug ao serviço entrar na função Getjson.
o meu objectivo é inserir novos valores de header no rest service em causa
ja ando a um a 2 dias nisto farto de procurar no google , mas não encontro nehuma solução que me resolva este problema.
Agradecia uma ajuda
obrigado