久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

iCurlHTTP – 適用于 iPhone 和 iPad 的 cURL – The Book of Jason

 jerry_tom123 2022-05-25 發(fā)布于北京

iCurlHTTP

HTTP 服務(wù)器響應(yīng)診斷工具

我喜歡 cURL,。各地的系統(tǒng)工程師,、開發(fā)人員、管理員,、QA 工程師和 Web 操作專家都使用 curl 工具來幫助對 Web 服務(wù)器響應(yīng)進(jìn)行故障排除,。它可以快速查看從Web服務(wù)器發(fā)送到瀏覽器的確切內(nèi)容。

在下班回家的路上,,我開始想,,如果我拿著的小型電腦,我的iPhone,,有一個簡單易用的應(yīng)用程序,,如curl來做同樣的故障排除,那該有多方便,。我一直想寫自己的iPhone應(yīng)用程序,,所以我開始研究如何做到這一點(diǎn)。

我的 Xcode Adventure

我第一次在我的Snow Leopard配備的MacBook Pro上啟動了Xcode,。我在SafariOnline上找到了一些很棒的iOS開發(fā)書籍,,并開始學(xué)習(xí)Objective-C。幾章后,,我開始離開頁面,,添加視圖和控制器。我想將我的測試應(yīng)用程序部署到我的iPhone上,,這樣我就需要注冊成為Apple開發(fā)人員(和100美元,!我很快發(fā)現(xiàn)我的Xcode版本太過時了,無法與我的iOS 6.1設(shè)備配合使用,,所以我試圖升級,,卻發(fā)現(xiàn)我需要升級我的操作系統(tǒng)?,F(xiàn)在到了Xcode 4.6,,突然間我的項(xiàng)目在我的iPhone和iPad上運(yùn)行。

我的圖書館冒險

我發(fā)現(xiàn)了NSURL類,,并開始嘗試從Web服務(wù)器獲取原始響應(yīng)以顯示到文本視圖,。它太消化了,需要花費(fèi)很多精力來模擬原始的卷曲會話,。我開始研究NSStream類時,,一位朋友建議我研究一個針對ARM處理器的libcurl(來自Daniel Stenberg的cURL庫)的預(yù)編譯版本。相反,,我發(fā)現(xiàn)了Nick Zitzmann的一篇很棒的文章,,他展示了他如何編譯libcurl,,甚至提供了一個二進(jìn)制文件:http://seiryu.home./~seiryu/libcurl-ios.html

我設(shè)法讓最新版本的libcurl進(jìn)行編譯,并且還包含Apple SecureTransport庫(在libcurl config中帶有darwinsll):

#!/bin/bash
cd curl-7.29.0
export IPHONEOS_DEPLOYMENT_TARGET="4.3"
export CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2"
export CFLAGS="-arch armv7 -arch armv7s -pipe -Os -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk"
export LDFLAGS="-arch armv7 -arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk"
./configure --disable-shared --enable-static --with-darwinssl --disable-dependency-tracking --host="armv7-apple-darwin" --prefix=~/Code/curl/device
make -j `sysctl -n hw.logicalcpu_max`
make install

我將libcurl.a庫添加到我的Xcode項(xiàng)目中,,并開始通過CURLcode curl_easy_perform(CURL * handle)使用簡單的接口API,。iCurlHTTP的實(shí)時感覺來自于使用CURLOPT_WRITEFUNCTION選項(xiàng)將實(shí)時代碼推送到呈現(xiàn)到textview對象的視圖控制器方法中。它需要定期讓線程將時間讓給主RunLoop(通過向NSRunLoop發(fā)送消息),,以便允許顯示呈現(xiàn)和響應(yīng)用戶事件,。

iCurlHTTP v1.0 Born

iCurlHTTP誕生了。這是一個簡單易用的iOS應(yīng)用程序,,允許您運(yùn)行簡單的cURL,,如測試,模擬不同的Web瀏覽器以從Web服務(wù)器檢索原始HTTP標(biāo)頭和HTML響應(yīng),。

icurlhttp-v1.0

OpenSSL 有人嗎,?iCurlHTTP v1.1

SecureTransport庫工作得很好,但提供的SSL連接細(xì)節(jié)比我習(xí)慣于使用curl看到的細(xì)節(jié)要少,。我想要更多的x509解碼信息,,特別是有關(guān)到期日期的SSL證書詳細(xì)信息。OpenSSL庫將允許這樣做,,所以我開始再次搜索以獲取ARM7的OpenSSL庫,。為了得到我想要的東西,我把OpenSSL和libcurl交叉編譯在一起,。有了這個,,我能夠在輸出中獲得很好的openssl細(xì)節(jié),包括證書信息:

icurlhttp-cert

我設(shè)法為armv7,,armv7s和i386架構(gòu)分別交叉編譯libcurl和opensl,,但后來發(fā)現(xiàn)了一個由Miyabi Kazamatsuri創(chuàng)建的很棒的GitHub項(xiàng)目腳本,可以做到這兩點(diǎn),。我分叉了他的代碼并更新了它,,使其與Xcode 5(iPhoneOS和iPhoneSimulator的clang)一起使用,并添加了64位arm64和x86_64架構(gòu),。該腳本可在我的 GitHub 上找到:https://github.com/jasonacox/cURL-SSL-for-iOS

更新:我后來為opensl + libcurl編寫了一個更好的構(gòu)建腳本,,該腳本為Mac,iOS和tvOS(Apple TV)目標(biāo)創(chuàng)建庫:https://github.com/jasonacox/Build-OpenSSL-cURL

HTTP Timing 和 iOS 7 支持已添加到 iCurlHTTP v1.2

Curl 能夠?yàn)?DNS 查找,、TCP 連接,、SSL 握手、第一個字節(jié)和總時間提供計(jì)時數(shù)據(jù),。例如,。。,。

curl -k -s -o /dev/null -w '%{time_namelookup} %{time_connect} %{time_appconnect} %{time_pretransfer} %{time_redirect} %{time_starttransfer} %{time_total}n' https://

我想將其添加到iCurlHTTP中,,以便為這些數(shù)字提供移動視角,。在 v1.2 中,我在詳細(xì)信息響應(yīng)視圖中添加了此內(nèi)容,,并將其作為按 UI 底部列出的計(jì)時數(shù)據(jù)點(diǎn)添加,。

icurlhttp-timing3

v1.2版本還包括iOS 7 SDK更新和新的極簡主義UI外觀。

iCurlHTTP 1.3 愿望清單

多虧了很好的反饋,,我從iCurlHTTP用戶群中捕獲了幾個功能請求,,這些請求成為1.3版本的目標(biāo):

  1. 自定義標(biāo)頭 – 允許通過自定義選項(xiàng)進(jìn)行更多自定義瀏覽器仿真。
  2. 打印,,復(fù)制或電子郵件輸出 - 添加一鍵式功能以將輸出發(fā)送到剪貼板,,打印機(jī),電子郵件,,帖子等,。
  3. 自定義帖子 – 允許自定義帖子數(shù)據(jù)模擬 POST 表單提交。

這意味著我需要能夠有一個“用戶設(shè)置”彈出屏幕,,以允許用戶輸入標(biāo)題和帖子的自定義字段,。我還想允許將來能夠擁有自定義用戶代理,http身份驗(yàn)證(用戶/密碼),,SSL選項(xiàng)以及可能的其他選項(xiàng),。

我知道我想要一個基于表格的表單,以允許格式化,,滾動和自動定位,。我考慮使用設(shè)置包,但我需要多行UITextView輸入(特別是對于自定義標(biāo)頭),。有幾個很棒的開源解決方案,,但我最喜歡的版本是FXForms,由Nick Lockwood(https://github.com/jasonacox/FXForms)編寫,。我使用了一個簡單的plist來表示設(shè)置持久性,。

icurlhttp-settings

版本 1.3 中添加了以下功能:

  • 共享功能 – 將輸出發(fā)送到剪貼板、打印機(jī)和電子郵件
  • 用戶設(shè)置 – 設(shè)置自定義用戶代理,、自定義標(biāo)頭(替換默認(rèn)值或添加新標(biāo)頭),、POST 數(shù)據(jù)、身份驗(yàn)證和 SSL 模式選擇
  • 更新 – 新的 libcurl 和 openssl 庫,。

iCurlHTTP 1.4 增強(qiáng)的歷史記錄

1.4 更新的目標(biāo)是通過添加 HEADER 和 POST 數(shù)據(jù)來增強(qiáng) URL 下拉列表歷史記錄,,以便于重復(fù)測試,。我使用簡單的(h)和(p)符號分別表示標(biāo)題和帖子:

屏幕截圖 2016-03-05 在 8.53.39 上午

iCurlHTTP 1.5 Redirect

我有幾個請求添加“跟隨重定向”功能(類似于curl -L命令),,以使用戶更容易測試。我不希望這是純粹的自動,,因?yàn)樗鼤茐腸URL提供的粒度細(xì)節(jié)的目的,,因此當(dāng)收到301或302重定向響應(yīng)時,,我會向用戶顯示一個彈出對話框,并列出他們可以遵循的重定向URL,。在此版本中,,我還將丑陋的文本“用戶”(設(shè)置)和“共享”按鈕替換為眾所周知的圖標(biāo),以幫助使其更加直觀,。

屏幕截圖 2016-03-05 在 9.30.53 上午

我對這個小而簡單的項(xiàng)目如何繼續(xù)增長感到驚訝(無論是在用戶中還是在功能請求中),。這是一次有趣的冒險!iCurlHTTP是用Objective-C編寫的,,但我肯定會推薦嘗試Swift,。我正在將iCurlHTTP移植到Apple TV(看起來很荒謬,我知道,,但我必須這樣做只是為了好玩),,并希望嘗試一下Swift。

iCurlHTTP 1.6 & 1.7 – HTTP/2.0 和 IPv6 Update

對于那些想要libcurl,,openssl和nghttp2(HTTP2)庫的iOS或tvOS(AppleTV),,我已經(jīng)在github上發(fā)布了一個構(gòu)建腳本:https://github.com/jasonacox/Build-OpenSSL-cURL

由于用戶的要求,我添加了以下功能:

  • HTTPS 會話的證書鏈詳細(xì)信息(詳細(xì)信息模式)
  • 支持 URL 中的身份驗(yàn)證憑據(jù)(例如 https://user:pass@/gettest.php)
  • 用于手動地址解析的DNS解析欺騙選項(xiàng)(例如,。主機(jī):端口:地址)

iCurlHTTP 1.8 和 1.9 – 性能改進(jìn)

  • 性能改進(jìn)和報告的錯誤修復(fù)
  • 添加了用戶定義的 DNS 查找和連接超時設(shè)置(默認(rèn) 5 秒)

謝謝,!

感謝您的大力反饋和支持!我真的很感激客氣話和批評性建議,。請發(fā)送更多,!

iCurlHTTP 網(wǎng)站: www./icurlhttp

在應(yīng)用商店下載

 

參考和感謝!

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多