問題タブ [form-parameter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
file - curl --form ファイルのリダイレクト
これは機能します:
これはしません:
エラー: 無効な API キー
cURL マニュアル ( http://curl.haxx.se/docs/manpage.html ) に明示的に記載されています
-F/--form (HTTP) これにより、curl は、ユーザーが送信ボタンを押した入力フォームをエミュレートできます。[...] 「コンテンツ」部分を強制的にファイルにするには、ファイル名の前に @ 記号を付けます。ファイルからコンテンツ部分だけを取得するには、ファイル名の前に記号 < を付けます。@ と < の違いは、@ はファイルのアップロードとして投稿にファイルを添付するのに対し、< はテキスト フィールドを作成し、そのテキスト フィールドのコンテンツをファイルから取得することです。
FWIW: --form "apikey=@keyfile" を使用すると、「API キーが必要です」というエラーが表示されます。これにより、@ が間違いなく間違っていることが確認されます (これは問題ありません)。しかし、なぜうまくいか<
ないのでしょうか。
ファイルの内容が伝えられていないか、間違っているように見えます。したがって、ファイルには API キー (ここでは 39485730) のみが含まれ、他には何も含まれていないことを 4 重に確認しました。
なぜ私がこれをやろうとしているのかが重要な場合:
スクリプトでこのcurlコマンドが必要であり、そこにAPIキーを入れたくありません. 代わりに、このスクリプトを実行するユーザーの HOME にある必要があり、そのユーザーのみが読み取ることができ、他のユーザーは読み取ることができません。
事前に洞察をありがとう... :-)
asp.net-mvc-2 - パラメータをフォームパラメータではなくクエリ文字列として別のアクションに送信する
検索用のクエリを保持するフィールドと、検索を実行するためにクエリ値を別のアクションメソッドに送信するためのボタンを持つフォームがあります。ここで、このパラメーターをクエリ文字列として送信します。パラメータを形成しません。しかし、送信ボタンをクリックすると、その値はアドレスバーに表示されず、フォームパラメータとして送信されます。
送信ボタンをクリックした後のURLは.../search / resultで、なりたい... / search / result?query = someQueries
少し早いですがお礼を ;)
java - RESTletがフォームパラメータを二重にデコードしているようです
私はTomcatサーバーにRESTletアプリケーションを組み込んでいますが、クライアントは@FormParmパラメーターの%シンボルがRESTletフレームワークで二重にデコードされてサーバーエラー500を引き起こしていると不平を言っています。
私の質問は次のとおりです。クライアントはパーセント記号を二重にエンコードする必要がありますか(たとえば、5文字のシーケンス「xx%xx」を表すためにxx%2525xxを送信します)?もしそうなら、これはRESTletフレームワークのバグですか、それともフォームパラメータをエンコードする一般的な方法ですか?そうでない場合、RESTletフレームワークをどのように誤用していますか?
私のAPIは次のようになります
次のようなcurlコマンド:
curl -H "Accept:application / json" -d "name = 100%25 + working" http:// $ {host} / api / sessionx21 / foo / home /
次のようなサーバー側のスタックトレースを生成します。
2012年4月2日17:15:20org.restlet.ext.jaxrs.internal.util.ExceptionHandlermethodInvokeException警告:リソースメソッドjava.lang.IllegalArgumentExceptionを呼び出すことができません:URLDecoder:エスケープ(%)パターンの不正な16進文字-入力文字列の場合:「w」at java.net.URLDecoder.decode(URLDecoder.java:173)at org.restlet.data.Reference.decode(Reference.java:170)at org.restlet.data.Reference.decode( Reference.java:143)at org.restlet.ext.jaxrs.internal.wrappers.params.ParameterList $ AbstractParamGetter.convertParamValue(ParameterList.java:186)at org.restlet.ext.jaxrs.internal.wrappers.params.ParameterList $ AbstractParamGetter.convertParamValue(ParameterList.java:166)at org.restlet.ext.jaxrs.internal.wrappers.params.ParameterList $ FormOrQueryParamGetter.getParamValue(ParameterList.java:529)org.restlet.ext.jaxrs.internal.wrappers.params.ParameterList $ FormParamGetter.getParamValue(ParameterList.java:561)at org.restlet.ext.jaxrs.internal.wrappers.params.ParameterList $ AbstractParamGetter.getValue( ParameterList.java:409)at org.restlet.ext.jaxrs.internal.wrappers.params.ParameterList.get(ParameterList.java:1096)at org.restlet.ext.jaxrs.internal.wrappers.AbstractMethodWrapper.internalInvoke(AbstractMethodWrapper。 java:166)AbstractMethodWrapper.internalInvoke(AbstractMethodWrapper.java:166)AbstractMethodWrapper.internalInvoke(AbstractMethodWrapper.java:166)
私のpom.xmlファイルには
escaping - @FormParam コンテンツ Apache Wink に埋め込まれた ' のために切り捨てられました
URL エンコードされたフォームを使用して単一の変数 (改行をスペースに変換し、コンテンツをエスケープ) で XML ドキュメントを送信するという愚かなことをしていることは認めますが、これはフォーム データしか送信できないクライアントに対応するためです。
エスケープされた XML コンテンツの文字列の 1 つにアポストロフィが含まれていた場合
リクエスト本文の解析が停止し、変数の残りは返されません。もちろん、取得する XML ドキュメントが不完全であるため、これは問題を引き起こします。
受信者が Apache Wink JAX-RS ライブラリを使用している場合、フォーム パラメータでアポストロフィを渡す適切な方法は何ですか?
次のような行:
正常に動作しますが、次のような行です。
「Square project」以降は切り捨て
エスケープされる文字は次のとおりです。
java - @FormParamを使用したPUTメソッド
私が次のようなものを持っている場合:
(コンテンツフィールドに)RESTサービスをテストするために両方のパラメーターを入力するにはどうすればよいですか?次のようなものではありません:
ありがとう
java - JAX-RS リソース サービスで @FormParam パラメータが常に null になる
curl でリクエストするサービスは次のとおりです。
リソース:
そのサービスは正常に機能していましたが、突然失敗しました。現在、パラメータ myIds は常に null で、curl の結果は 400 bad request です... このリソースで何も変更していないので、引き続き機能するはずです。誰かがアイデアを持っているなら、私に知らせてください。ありがとう!
javascript - 春の提出には二重のパラメータがあります
春のWebアプリケーションは初めてです。フォームを送信すると、リクエスト マッピングが「デュアル」パラメータを取得しています。私のフォームは次のように設定されています:
たとえば、さまざまなページに移動するためにフォームを送信すると、javascript は次のようになります。
私のjspページにこのようなリンクがあると、
/trx のリクエスト マッピングのコントローラーでは、パラメーター ページを値 "3" として取得する必要がありますが、値を "3,3" として取得しています。
理由はありますか?action=search や action=sort などのパラメーターを使用すると、page パラメーターだけに気付きました。それはすべてうまくいきます。
java - @FormParam (Jersey REST を使用した Java Web サービス) で POST を使用すると、405 "Method Not Allowed" エラーが発生する
文字列でも単純なタイプでもない何かをRESTサーバー(リソース)に渡すのは簡単ではないことを私は知っています。
しかし、単純な注文プロセスでは、クライアントからサーバーに (注文される) 記事のリストを送信する必要があります。
私はすでに "QueryParam" を使用して、オブジェクト (リストを DTO にラップ) を JSON-String に変換して渡してみました。うまくいきませんでした。(ただし、オブジェクトをサーバーに渡す必要のない他のメソッドの場合、私のサービスは POST メソッドでも問題なく動作します。)
そんな時、理論上あらゆるオブジェクトを転送できる @FormParam を知りました。(そう読んだのですが、本当ですか?)
そのため、非常に単純なテスト メソッドで文字列のリストをサービスに渡すことを試みました。サーバー側はそのリストの要素数を返す必要があります。
それが私のコードです:
サーバー側 (リソース):
クライアント側 (セッション Bean 内):
サービスがそのように構築されている場所:
このクライアント メソッドを GUI から呼び出すか、EJB エクスプローラーから直接呼び出すと、常に 405 エラーが発生します。
問題はどこですか?POST、MIME タイプ、またはフォームで何かを見逃していませんか?
ちなみに、String や int のような単純なフォーム パラメータでも機能せず、405 エラーもスローされます。
ご協力いただきありがとうございます!
ジャナ
java - 独自のオブジェクト (エンティティなど) を含む FormParam を使用した POST 中の REST Web サービスでの HTTP 400 エラー
私の REST サービスでの注文プロセスでは、「記事」のリストをクライアントからサーバーに送信する必要があります。これらの記事オブジェクトは自作のエンティティ タイプです。STRING または INTEGER オブジェクトのリストの送信が機能し、@FormParam を介して送信することが既にわかっています。
しかし、自分のオブジェクトのリストを送信しようとするとすぐに (1 つのオブジェクトのみでも)、常にHTTP 400 エラー "Bad Request" が発生します。
以下のようなまったく同じコード(form.add()のパラメーターとサーバーメソッドのパラメーターのみが変更されました)とpostet文字列、整数、および文字列のリストを正常に試しました。独自のオブジェクトタイプを送信するだけで問題が発生します。
ログは、サーバー メソッドに到達していないことを示しています。プロセスはどこかで壊れています。
また、プロキシ (Apache JMeter) を使用してリクエストを取得しようとしました。ここでは、パラメーターkunde
に value が含まれていることが示されていますentities.Kunde%40af8358
。したがって、オブジェクトは完全に (またはまったく) シリアル化されていないと思います。しかし、応答でこの種のオブジェクトをサーバーからクライアントに送信すると問題なく動作します。ここでは、XML シリアル化は問題ありません。
その理由は何ですか?POST で独自の型を送信することはできないのでしょうか?
(PS:Kunde
私の例の型はシリアライズ可能で、注釈が付けられてい@XmlRootElement
ます。)
よろしくお願いします。
ジャナ
注: SAP Netweaver AS を使用しています。しかし、これまでは他のすべての Java AS と同じように動作していたので、これが理由になるとは思いません。独自のエンティティを持たない POST であっても、他のすべての REST 操作は機能します。
追加:JERSEYライブラリを使用しています。
サーバー側の私のコード:
クライアント側の私のコード (メソッドはセッション Bean にあります):
サービスは次のように構築されます。