Sieć w moim miejscu korzysta z serwera proxy. Więc skonfigurowałem proxy w iPhonie. Mogę bez problemu łączyć się z Internetem i uzyskiwać dostęp do Facebooka za pomocą przeglądarki Safari. Jednak kiedy łączę się z Facebookiem za pomocą natywnej aplikacji, wyświetla mi się błąd połączenia. Dlaczego tak jest? Czy aplikacja natywna używa różnych portów zamiast pobierać obiekty JSON przez port HTTP? Jestem w tym całkiem nowy, więc proszę o wyrozumiałość.
Odpowiedź
Po pierwsze, to jest naprawdę dobre pytanie. Łał. Od wielu dni próbowałem wymyślić, jak zaatakować to.
Skonfigurowałem „Charles Web Debugging Proxy” na moim Mac i skonfigurowałem mojego iPhonea, aby go uderzył.
Najpierw trafia http://api.facebook.com/restserver.php , który wypluwa to z powrotem:
<chat_connect_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd"> <host>9.channel</host> <port>80</port> <channel>p_123456789</channel> <seq>0</seq>
W międzyczasie łączy się również z witryną iphone.facebook.com, która dostarcza trochę XML. Następnie łączy do 0.9_channel.facebook.com:80 i wysyła żądania, które zwracają JSON.
Wygląda na to, że wszystko odbywa się na porcie 80. Czy na pewno nie ma innego problemu po Twojej stronie?