giovanigenerali / cartrolandofc

🎩 CartrolandoFC é um site para consultar os pontos parciais do seu time no Cartola FC.
http://www.cartrolandofc.cf
MIT License
279 stars 112 forks source link

Problemas ao acessar api #57

Closed matheusvmbruno closed 7 years ago

matheusvmbruno commented 7 years ago

Olá, estou tentando acessar os webservices do cartola através de uma aplicação mobile que utiliza xamarin.

Estou testando com a URL de status de mercado (https://api.cartolafc.globo.com/mercado/status). Porém sempre a requisição retorna com erro. Testando com outros web services o erro não ocorre.

Gostaria de saber se nas aplicações de terceiros essa requisição está funcionando corretamente e se é necessário realizar alguma autenticação antes ou no momento de executar estas requisições.

Obrigado!

jhonata-menezes commented 7 years ago

O Xamarin olha o 'Access-Control-Allow-Origin' da resposta para verificar se tem permissão no domínio? Isso foi uma pergunta porque não conheço a ferramenta, mas se você usa no browser e tenta acessar a api via javascript o browser não aceita se o dominio da requisição for diferente do domínio da api ou os que estão dentro do Access-Control-Allow-Origin.

luizvnasc commented 7 years ago

Eu tive problema de CORS tbm criando uma aplicação em angular, pra resolver tive que fazer uma aplicação rest que chama o serviço da api do cartola e retorna para a minha aplicação em angular.

matheusvmbruno commented 7 years ago

Olá Jhonata, eu creio que não pois quando tento utilizar outras URLs de outros domínios funciona corretamente.

jhonata-menezes commented 7 years ago

Passa o erro que você esta obtendo

matheusvmbruno commented 7 years ago

System.Net.WebException: Error getting response stream (ReadDone2): ReceiveFailure ---> System.Exception: at System.Net.WebConnection.HandleError (System.Net.WebExceptionStatus st, System.Exception e, System.String where) [0x0003a] in <8dac28ffb2cb41cba0b572038da86c99>:0 at System.Net.WebConnection.ReadDone (System.IAsyncResult result) [0x0006e] in <8dac28ffb2cb41cba0b572038da86c99>:0 at System.Runtime.Remoting.Messaging.AsyncResult.Invoke (System.Runtime.Remoting.Messaging.AsyncResult ) [0x00000] in <8c304e4006094a46a7950338a3b3cb5d>:0 at System.Runtime.Remoting.Messaging.AsyncResult.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in <8c304e4006094a46a7950338a3b3cb5d>:0 at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in <8c304e4006094a46a7950338a3b3cb5d>:0 at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <8c304e4006094a46a7950338a3b3cb5d>:0 at System.Net.WebConnection.HandleError (System.Net.WebExceptionStatus st, System.Exception e, System.String where) [0x0003a] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/System/System.Net/WebConnection.cs:447 --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x0005e] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/System/System.Net/HttpWebRequest.cs:1029 at System.Threading.Tasks.TaskFactory1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func2[T,TResult] endFunction, System.Action1[T] endAction, System.Threading.Tasks.Task1[TResult] promise, System.Boolean requiresSynchronization) [0x00014] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs:550 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 at System.Net.Http.HttpClientHandler+casync0.MoveNext () [0x003ce] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:379 --- End of inner exception stack trace --- at System.Net.Http.HttpClientHandler+casync0.MoveNext () [0x0047a] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:383 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 …

jhonata-menezes commented 7 years ago

Verifica se ajuda: https://forums.xamarin.com/discussion/15509/error-getting-response-stream-readdone2-receivefailure

jhonata-menezes commented 7 years ago

Tenta acessar essa api para verificar se ocorre o mesmo: https://api.tecmundo.com.br/api/v2/news/top-views?top=10&order=today&host=https://www.tecmundo.com.br

matheusvmbruno commented 7 years ago

Jhonata, obrigado por enviar este link do forum, mas eu já o tinha visto e não me ajudou. Quanto a api do tecmundo que você me passou, funciona corretamente. Parece que o problema é especificamente com a do cartola.

Será que é necessário informar algum header no momento da chamada desta?

jhonata-menezes commented 7 years ago

Um que eu sei que é obrigatório e o user-agent

jhonata-menezes commented 7 years ago

Tenta utilizar uma ferramenta para ver o que está passando na requisição e resposta, para Windows tem esse: http://www.telerik.com/fiddler

giovanigenerali commented 7 years ago

Fechando, dúvidas desse tipo tratar via https://gitter.im/cartrolandofc/dev