0

関数で:

web_reg_save_param("questionId", "LB=secretKnowledges\":\\[\\{", "RB=\"", LAST);

サーバーの応答から(jsonファイル)として取得される「questionId」パラメーターの値をキャッチしようとしましたが、次のようになります。

"salutation":{"firstNaAction me":"Sebastian","lastName":"Martens"},"userAccount":{"mail":"gcdmtest_bp_pr_acc_po_20073@trash-mail.com","notificationLevel":"NEW_DEVICE","authenticationLevel":"ONE_FACTOR","gcid":"bb2e64a9-1b39-4692-9c52-4845eb15c4f7","secretKnowledges":[{"questionId":11301},{"questionId":11302}],"secretKnowledgeActivated":true,"status":"ACTIVATED"}}

代わりに、次のエラーが発生しました。

Action.c(23): Error -26377: No match found for the requested parameter "questionId". Either the specified boundaries were not found in the response or the matched text is longer than current max html parameter size of 8000 bytes. The total length of the response is 1506 bytes. You can use web_set_max_html_param_len to increase the max parameter size.    [MsgId: MERR-26377]Action.c(23): Notify: Saving Parameter "questionId = ".

私は何を間違えましたか?

4

1 に答える 1

1

私があなたを理解しているかどうかわかりません。応答ですべてのquestionIdパラメータの値が必要な場合は、次のことを試してください。

web_reg_save_param("questionId", "LB={\"questionId\":", "RB=}", "Ord=All", LAST);

これにより、パラメーターquestionId_1questionId_2などの配列が生成されます。また、パラメーターの数がquestionId_countパラメーターに保存されます。ただし、そのパラメーターの最初のオカレンスのみが必要な場合は、Ord=All引数をスキップしてください。

JSON 応答用の特別な抽出 API もあります: web_reg_save_param_json。あなたの場合の例を次に示します。

web_reg_save_param_json("ParamName=questionId", "QueryString=$..questionId",
   "SelectAll=Yes", LAST);

また、RegEx ベースのパラメーター抽出が必要な場合は、 web_reg_save_param_regexp を試すことができます

于 2015-10-10T10:57:49.573 に答える