Okul notlarımı tüm notlarımı depolayan web sitesinden almaya çalışıyorum, ancak HTTP isteklerini kullanarak giriş yapmak ve bir sonraki sayfanın bilgilerini çekmekte sorun yaşıyorum. Herhangi bir yardım, kodunuzun sonuna task.resume()
numaralı telefon numarasını ekleyiniz:Web sitesindeki notları nasıl alabilirim ve POST isteğini kullanarak nasıl giriş yapabilirim?
cevap
dışına taşıyorum I Bu hatayı al http://puu.sh/o551X/87214a65bf.png – user6032625
evet, denediğiniz gibi posta isteğini yapamazsınız gibi görünüyor. Bir durum 500 (iç sunucu hatası) alıyorum ... –
Herhangi bir alternatif var mı? – user6032625
İlk olarak, aksi nesne oluşturulur ve hiçbir şey yaptıkları gerçekleşecek, bağlantı yüklenmesini başlatmak için görev tanımlayan sonra
task.resume()
gerekir.this error you posted'a göre, erişmeye çalıştığınız sitede bir SSL doğrulama hatası var. En güvenli seçenek, sitedeki SSL'yi düzeltmektir, ancak bu durumda denetiminizin ötesinde olduğunu varsayalım. Daha kolay düzeltme,
"App Transport Security Settings" > "Allow Arbitrary Loads" = YES
numaranızıinfo.plist
@ André tarafından önerildiği gibi SSL hatasını atlamaktır. Veya, yalnızca bir etki alanını kullanıyorsanız,NSExceptionDomains
'daki belirli etki alanını atlayın. Daha fazla bilgi için bkz. this question.this error you posted, bir JSON ayrıştırma hatası oluşuyor. Şu anda catch bloğunuz tarafından yakalanmakta ve yazdırılmaktadır, bu nedenle veriler aslında işlenmemektedir. Durumunuzda, Home Access Center'dan gelen yanıt JSON değil, JSON ayrıştırıcısının başarısız olması nedeniyle gerçekleşmektedir. Muhtemelen bir HTML ayrıştırıcısı'u arıyordur. Swift'in bir tane yerleşik değil; bazı örnek açık kaynak seçenekleri için this question'a bakın.
Aslında Ev Erişim Merkezi ile arabirim oluşturan bir program oluşturdum. Ne yazık ki, herkese açık bir API mevcut değil - API'lar genellikle çalışmak için daha kolay olan JSON'u döndürüyor. Bunun yerine, insan kullanıcılar ve çerezler için kullanılan bir sayfanın, bir kullanıcının oturum açtığı konusunda uyarmak için bir HTML ayrıştırıcısı kullanmanız gerekecektir.
# 2 - Bu değişiklikleri Info.plist'de yapmayın. Tüm keyfi yüklerin belirli bir sorunu çözmesine izin vermek uygun değildir. – rmaddy
@rmaddy Doğru, en iyi yolun ancak en kolay yol olmadığını belirtmek için cevabım ile değiştirdim. Ayrıca, alan adına erişemediğini ve kaynakta SSL sorununu çözemeyeceğini de düşünüyorum. – BradzTech
oturum açma verileri olmadan neyin yanlış gittiğini söylemek zor… hiçbir şey ters gitmiyor mu? Hangi hatayı alıyorsun? neyin yanlış gidiyor? tam olarak ne gibi problemleriniz var? –
Konsola hiçbir şey basılmaz – user6032625
ok. Bu, talebi hiç ateşlemediğiniz için mantıklıdır. kodunuzun sonuna 'task.resume() 'ekleyin ... –