Sobre este projeto
it-programming / web-development
Aberto
Buscamos um profissional para construir uma nova biblioteca em C# para acessar endereços webs, assim como o HttpClient é hoje da .NET Framework, porém precisamos de uns detalhes bem específicos.
Temos hoje uma aplicação que coleta dados de forma muito massiva e rápida em API’s externas através do HttpClient. Utilizamos o ServicePoint do .NET Framework para fazer troca de ip’s dinâmicas que são alocados em nosso cloud, as requisições que fazemos no banco de dados externos tem os ip’s alternados a cada requisição que fazemos.
Os problemas comuns são: O Servicepoint do .net não fornece controle de manipulação sobre as trocas de ip’s, as vezes requisições são repetidas utilizando o mesmo ip e ou/as requisições ficam muito embaralhadas em ip’s diferentes. E como todas as nossas requisições são feitas de formas assíncronas, não da para garantir que a próxima requisição a fazer, utilizara realmente o IP que solicitamos na mudança do ServicePoint, pois uma outra requisição assíncrona pode passar na frente e atropelar!
Queremos que o profissional construa uma nova biblioteca baseada nos moldes do HttpClient, a nova biblioteca deve utilizar Sockets puro para fazer a conexão com o serviço HTTP especifico, podendo utilizar TcpClient. Precisa ter um método que seja possível passar qual IP utilizar para realizar a requisição.
O profissional precisa de conhecimentos muito avançado em http, pois ele precisa conhecer todo o cabeçalho http e protocolo etc. As requisições serão enviadas em Socket e precisam ser tão ágeis e eficientes como o HttpClient é hoje, porém passando como parâmetro um IP específico para ser utilizado na conexão usando IPEndPoint. A nova biblioteca tem que funcionar para https, sem problemas de certificado tsl (lembrando é uma aplicação client e não server/httplistener), com todos os métodos aptos a funcionar (get, post, put, delete).
Utilizaremos dessa nova biblioteca para acessar muitos serviços de API que trabalham com esses métodos. Precisa ser uma biblioteca de Client HTTP performática assim como o HttpClient, com os suportes para Tasks, retornos assíncronos etc. Porém com o detalhe que temos que garantir a utilização de um IP nosso específico para a requisição a ser feita com alto desempenho.
- Especificando: Não é uma aplicação ASP, não é uma aplicação Desktop com ui, é uma biblioteca de classe para realizar requisições http, com suportes específicos para as nossas necessidades.
Se você é um mestre em C#, em conhecimento do protocolo Http 1.1 / 2, saber os mais detalhados níveis do protocolo descrito na rfc 2616 e outras rfc, juntamente com tsl/ssl/https e também um mestre em comunicação socket, network etc. Você estará apto para trabalhar conosco.
Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Alteração média
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Não se aplica
Disponibilidade requerida Conforme necessário
Integrações de API Outros (Outras APIs)
Funções necessárias Desenvolvedor
Prazo de Entrega: Não estabelecido
Habilidades necessárias