2014-09-13 54 views
0

所以我想弄清楚如何從Pfam蛋白質序列搜索服務的REST Api中獲取XML文檔來構建Java應用程序。不幸的是,他們的所有文檔都假設您將使用Unix命令行或Perl等腳本語言。基本上,我想要做的是「轉換」下面的Unix命令行參數,到我可以鍵入到Web瀏覽器來檢索XML文檔的URL:如何將Unix命令行參數「轉換」爲URL?

shell% curl -LH 'Expect:' -F seq=abhsghdsgsbsfkgajsdhsjsjsjdhsjshdj -F output=xml 'http://pfam.xfam.org/search/sequence' 

這裏是鏈接到API文檔( http://pfam.xfam.org/help#tabview=tab10)。 感謝您的幫助。

回答

2

你鏈接到的文檔實際上是確實從一開始就解釋了這個權利;但我想作者可以更清楚地知道如何在不熟悉HTTP的讀者之間轉換GET和POST請求。

http://pfam.xfam.org/search/sequence?seq=abhsghdsgsbsfkgajsdhsjsjsjdhsjshdj&output=xml 
+0

此鏈接的工作原理除非它沒有用XML格式化...你會碰巧知道爲什麼嗎? – 2014-09-13 14:34:50

+0

不,'&output = xml'參數看起來應該照顧它。您確定您正確查看它(查看源代碼,檢查HTTP標頭)嗎? – tripleee 2014-09-13 16:21:59

1

漫步在man page的PARAMS:

  • -LH '期待',看起來它發送期待頭。把它放在你的請求頭中。
  • -F key = value,這些是表單值,它們位於帖子的主體中。把它們放在那裏。

既然你有要求,去寫一些perl!

1

「轉換」下面的Unix命令行參數爲URL,我可以輸入到Web瀏覽器在這裏檢索XML文檔

遺憾的是,只有信息,你可以不這樣做。此語法

  • 包含自定義首部Expect:
  • 指定該請求應當是POST,與字段(-F)包括在請求體。

任何你直接輸入到瀏覽器的將是一個GET沒有自定義標頭。

然而,可能是,該服務也將接受在指定的查詢參數的GET

http://pfam.xfam.org/search/sequence?output=xml&seq=abhsghdsgsbsfkgajsdhsjsjsjdhsjshdj' 
+1

鏈接的doco解釋說'Expect:'標題是'curl'的解決方法。我的理解是,交互式瀏覽不應該是必需的。 – tripleee 2014-09-13 07:07:24

2

您所提供的鏈接包括:原因爲什麼它目前與typycal瀏覽器的方式:

運行搜索過程分爲兩個步驟:

  • 提交搜索序列,並指定搜索參數以XML格式
  • 檢索搜索結果

原因分離的操作分爲兩個步驟,而不是 在一次操作中執行搜索所花費的時間到 執行序列搜索將根據搜索的序列的長度而有所不同。 如果在短時間內沒有收到響應,大多數網絡客戶端,瀏覽器或腳本將只是 超時, 通常不到一分鐘。通過提交搜索,等待,然後以單獨的操作檢索結果,我們避免了在返回結果之前客戶端達到超時的風險。

相關問題