CURL不可以讀寫檔案

2022-08-30 05:36:12 字數 727 閱讀 5562

最近在學es(elastic search),參考裡面翻譯的官方權威指南(後面發現官網已經推出了中文版文件了)。裡面有的例子把訪問es的命令做了簡化如下:

curl -xget 'localhost:9200/_count?pretty' -d '

}}'//簡化為

get /_count

}}

一開始我以為是es報的錯,進es的日誌,發現沒有日誌。然後覺得是不是傳送命令的時候把json資料轉化為字串的時候出了問題,確認發現不是,後面就知道了curl的說明文件。這個是curl命令的一種標準錯誤,原因是curl無法寫本地檔案。那curl寫了什麼檔案?自然就是pipe檔案,換了一種方式呼叫curl命令,改用php的system方法,問題果然解決。

關於curl的這個錯誤,stackoverflow上也有人問,雖然我還沒找到真正的原因,但是找到了報同樣錯誤的乙個例子:

雖然說有時候使用pipe會讓curl失敗,但是冰美人說清楚為什麼會失敗。但是裡面提到了一種肯定失敗的情況:pipe下有命令在curl寫完成之前退出,比如grep -qs foo。grep找到foo之後就退出並關閉管道。

curl -x get '' | grep  -qs 'html'

這裡需要選擇乙個內容多一點的頁面,如果選擇像'www.baidu.com'這樣的簡單頁面的話,寫pipe可能就一次性寫完退出了,就不會報錯。

curl文件可以參考

mark一下!

這個讀檔案為什麼不可以呢?

專案中有個讀stream的問題,我用了最原始的辦法,發現當inputstream中是xml可以讀出,當是其他的時候就不可以了。雖然後來有了其他方案解決了,但是還是不知道原因,這裡貼出來,想知道大家的看法,謝謝.try if in null byte cache2 new byte cache.siz...

觸發器不可以亂用

突然發現有乙個語句 update dnt users set adminid 0 where groupid 7 執行得特別慢,更新的資料是四萬多條記錄,表裡也是有四萬多條記錄。在檢視後發現庫里有乙個觸發器 if exists select name from sysobjects where na...

nyoj 1071 不可以! 水

時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 判斷 兩個數x y的正負性。要求 不可以使用比較運算子,即 輸入 有多組資料,每組資料佔一行,每一行兩個數x,y。x y保證在int範圍內。輸出 每組資料輸出佔一行。如果兩個數是一正一負,輸出 signs are opposit...