122

bashでcurlを使用してWebページをダウンロードしようとして&いますが、URLの記号が文字として解釈されません。&シンボルが単なる退屈なキャラクターであり、特別なものではないことをbashに納得させる方法についてのアイデアはありますか?

4

7 に答える 7

150

URL全体を二重引用符で囲むと、問題が解決するはずです。

于 2012-11-12T07:00:19.360 に答える
53
curl "http://www.example.com?m=method&args=1"

&をGET URLの区切り文字として使用していますか?それともデータの一部にありますか?

データに含まれている場合は、HTML文字にエンコードする必要があります。そうでない場合は、引用符で囲みます。

のエンコーディングはURLに含まれる&必要が%26あります。

curl "http://www.example.com?m=this%26that
于 2012-11-12T07:00:52.033 に答える
29

記号を一重引用符で囲むとうまくいく&ようです。つまり、http://www.example.com/page.asp?arg1=${i}'&'arg2=${j}curlのようなURLを使用すると、要求されたWebページが返されます。

于 2012-11-12T15:28:12.333 に答える
19

エスケープ「&」文字を試す代わりに、以下に示すように、-dパラメーターを使用してPOSTリクエストでhttpurlパラメーターを指定できます。

curl -X POST http://www.example.com \
-d arg1=this \
-d arg2=that

リクエストがGETの場合は、-Gオプションも追加する必要があります。これにより、curlにGETリクエストでデータを送信するように指示されます。

curl -X GET -G http://www.example.com \
-d arg1=this \
-d arg2=that
于 2016-08-05T15:58:12.933 に答える
11

%26代わりに使用できます&。エンティティコードは正常に機能します。

于 2015-02-25T18:33:17.623 に答える
2

--url二重引用符で囲まれたパラメーターを使用してください

于 2020-06-11T02:57:07.410 に答える
1

最も簡単な方法:

curl -X GET -G http://example.com -d var1=$1 -d var2=$2
于 2020-11-18T09:48:26.633 に答える