คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ลักษณะปัญหา
แอปพลิเคชันไคลเอ็นต์ได้รับรหัสสถานะ HTTP 500 Internal Server Error
ด้วย
รหัสข้อผิดพลาด protocol.http.BadFormData
เป็นการตอบกลับสำหรับการเรียก API
ข้อความแสดงข้อผิดพลาด
แอปพลิเคชันไคลเอ็นต์ได้รับโค้ดตอบกลับต่อไปนี้
HTTP/1.1 500 Internal Server Error
นอกจากนี้ คุณอาจสังเกตเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้
{ "fault":{ "faultstring":"Bad Form Data", "detail":{ "errorcode":"protocol.http.BadFormData" } } }
ข้อมูลฟอร์ม
ก่อนที่จะลงลึกรายละเอียดของการแก้ปัญหานี้ มาดูกันว่าข้อมูลในแบบฟอร์มคืออะไร
ข้อมูลแบบฟอร์มคือข้อมูลที่ผู้ใช้ระบุผ่านแบบฟอร์ม HTML ที่มีองค์ประกอบ เช่น ช่องป้อนข้อความ ปุ่ม หรือช่องทำเครื่องหมาย โดยทั่วไปแล้ว ข้อมูลฟอร์มจะส่งเป็นชุดของ คู่คีย์-ค่าเป็นส่วนหนึ่งของคำขอ HTTP หรือการตอบกลับ
การส่งข้อมูลแบบฟอร์ม
- ประเภทเนื้อหา: application/x-www-form-urlencoded
- หากข้อมูลในแบบฟอร์มมีขนาดเล็ก ระบบจะส่งข้อมูลเป็นคู่คีย์-ค่าพร้อมข้อมูลต่อไปนี้
- อักขระในคีย์ทั้งสองที่เข้ารหัสตามกฎที่อธิบายไว้ใน แบบฟอร์ม - ส่วนที่ 17.13.4.1
- ส่วนหัว
Content-Type: application/x-www-form-urlencoded
ตัวอย่างคำขอที่มีข้อมูลแบบฟอร์ม
curl https://HOSTALIAS/somepath -H "Content-Type: application/x-www-form-urlencoded" -d "username=abc@google.com&pasword=secret123"
- อักขระที่ไม่ใช่ตัวอักษรและตัวเลขคละกันทั้งในคีย์และค่า
เปอร์เซ็นต์ที่เข้ารหัส นั่นคือแสดงด้วยค่า 3 อักขระ
%HH
ประกอบด้วยเครื่องหมายเปอร์เซ็นต์ตามด้วยเลขฐานสิบหก 2 หลัก แทนรหัส ASCII ของอักขระที่ระบุ - ดังนั้น แม้ว่าจะอนุญาตให้ใช้เครื่องหมายเปอร์เซ็นต์ (
%
) ในข้อมูลแบบฟอร์ม แต่ ได้รับการตีความว่าเป็นจุดเริ่มต้นของลำดับหลีกพิเศษ ดังนั้น หากข้อมูลในแบบฟอร์มจำเป็นต้อง มีเครื่องหมายเปอร์เซ็นต์ (%
) ในคีย์หรือค่า ระบบจึงควรส่งข้อมูล เป็น%25,
ซึ่งแทนรหัส ASCII สำหรับเครื่องหมายเปอร์เซ็นต์ (%
)
- หากข้อมูลในแบบฟอร์มมีขนาดเล็ก ระบบจะส่งข้อมูลเป็นคู่คีย์-ค่าพร้อมข้อมูลต่อไปนี้
- ประเภทเนื้อหา: ข้อมูลหลายส่วน/แบบฟอร์ม
หากต้องการส่งข้อมูลไบนารีหรือข้อความที่มีอักขระที่ไม่ใช่ ASCII จำนวนมาก จากนั้นคุณจะสามารถส่งข้อมูลที่มี
Content-Type:
multipart/form-data ตามที่อธิบายไว้ใน แบบฟอร์ม - ส่วนที่ 17.13.4.2
สาเหตุที่เป็นไปได้
ข้อผิดพลาดนี้จะเกิดขึ้นก็ต่อเมื่อเป็นไปตามเงื่อนไขทั้งหมดต่อไปนี้
- คำขอ HTTP ที่ไคลเอ็นต์ไปยัง Apigee Edge ประกอบด้วยข้อมูลต่อไปนี้
Content-Type: application/x-www-form-urlencoded
และ- ข้อมูลแบบฟอร์มที่มีเครื่องหมายเปอร์เซ็นต์ (
%
) หรือสัญลักษณ์เปอร์เซ็นต์ (%
) ตามด้วยอักขระฐานสิบหกที่ไม่ถูกต้อง ซึ่งไม่ได้รับอนุญาตตาม แบบฟอร์ม - ส่วนที่ 17.13.4.1
พร็อกซี API ใน Apigee Edge จะอ่านพารามิเตอร์แบบฟอร์มที่เฉพาะเจาะจงซึ่งมีอักขระต่างๆ อยู่ ที่ไม่ได้รับอนุญาตให้ใช้ในขั้นตอนคําขอโดยใช้ ExtractVariable หรือ นโยบาย AssignMessage
ตัวอย่างเช่น หากข้อมูลในแบบฟอร์มมีเครื่องหมายเปอร์เซ็นต์ (
%
) ตามที่มีอยู่ (ไม่มี การเข้ารหัส) หรือเครื่องหมายเปอร์เซ็นต์ (%
) ตามด้วยเลขฐานสิบหกที่ไม่ถูกต้อง ในคีย์และ/หรือค่า จากนั้นคุณจะได้รับข้อผิดพลาดนี้สาเหตุที่เป็นไปได้สำหรับข้อผิดพลาดนี้มีดังนี้
สาเหตุ คำอธิบาย วิธีการแก้ปัญหาสำหรับ พารามิเตอร์แบบฟอร์มในคำขอมีอักขระที่ไม่อนุญาต พารามิเตอร์แบบฟอร์มที่ส่งผ่านซึ่งเป็นส่วนหนึ่งของคำขอ HTTP โดยไคลเอ็นต์มีข้อมูล อักขระที่ไม่อนุญาต ผู้ใช้ Edge สาธารณะและ Private Cloud
ขั้นตอนการวินิจฉัยทั่วไป
ใช้เครื่องมือ/เทคนิคต่อไปนี้เพื่อวินิจฉัยข้อผิดพลาดนี้
การตรวจสอบ API
วิธีวินิจฉัยข้อผิดพลาดโดยใช้การตรวจสอบ API
- ลงชื่อเข้าใช้ Apigee Edge UI ในฐานะผู้ใช้ที่มี บทบาทที่เหมาะสม
เปลี่ยนเป็นองค์กรที่ต้องการตรวจสอบปัญหา
- ไปที่ วิเคราะห์ > การตรวจสอบ API > หน้าตรวจสอบ
- เลือกกรอบเวลาที่คุณพบข้อผิดพลาด
พล็อตรหัสข้อผิดพลาดเทียบกับเวลา
เลือกเซลล์ที่มีรหัสข้อผิดพลาด
protocol.http.BadFormData
เป็น แสดงอยู่ด้านล่างข้อมูลเกี่ยวกับรหัสข้อผิดพลาด
protocol.http.BadFormData
คือ ดังที่แสดงด้านล่างคลิก ดูบันทึก และขยายแถวสำหรับคำขอที่ล้มเหลว
- จากหน้าต่าง Logs ให้จดรายละเอียดต่อไปนี้
- รหัสสถานะ:
500
- แหล่งที่มาของข้อผิดพลาด:
proxy
- รหัสข้อผิดพลาด:
protocol.http.BadFormData
- นโยบายข้อผิดพลาด:
extractvariables/EV-ExtractFormParams
- รหัสสถานะ:
- หากแหล่งที่มาของข้อผิดพลาดคือ
proxy
รหัสข้อผิดพลาดจะเป็นprotocol.http.BadFormData
และ Fault Policy ไม่ว่างเปล่า จากนั้น ระบุว่าเกิดข้อผิดพลาดขณะนโยบายที่ระบุอยู่ในข้อผิดพลาด นโยบายได้อ่านหรือดึงข้อมูลแบบฟอร์ม (พารามิเตอร์แบบฟอร์ม) ซึ่งมี อักขระที่ไม่อนุญาต - ในตัวอย่างนี้ X-Apigee-fault-policy คือ
extractvariables/EV- ExtractFormParams,
ซึ่งหมายความว่านโยบาย ExtractVariable ที่ชื่อว่า EV-ExtractFormParams ทำงานล้มเหลวขณะอ่านหรือดึงแบบฟอร์ม พารามิเตอร์
เครื่องมือการติดตาม
วิธีวินิจฉัยข้อผิดพลาดโดยใช้เครื่องมือติดตาม
- เปิดใช้เซสชันการติดตาม
และเลือกระหว่าง
- รอให้ข้อผิดพลาด
500 Internal Server Error
เกิดขึ้น หรือ - หากคุณทำให้เกิดปัญหาซ้ำได้ ให้เรียกใช้ API เพื่อจำลองปัญหา
500 Internal Server Error
- รอให้ข้อผิดพลาด
ตรวจสอบว่าเปิดใช้แสดง FlowInfo ทั้งหมด แล้ว
- เลือกคำขอที่ไม่สำเร็จรายการหนึ่งและตรวจสอบการติดตาม
- ไปยังส่วนต่างๆ ของการติดตามและค้นหาตำแหน่งที่ล้มเหลว เกิดขึ้น
คุณจะพบข้อผิดพลาดตามปกติในนโยบายข้อใดข้อหนึ่งต่อไปนี้
ในการติดตามตัวอย่างข้างต้น โปรดทราบว่าความล้มเหลวเกิดขึ้นใน นโยบาย ExtractVariable ชื่อ
EV-ExtractFormParams
ไปยังขั้นตอนที่ชื่อ Error หลังนโยบายที่เฉพาะเจาะจงซึ่งล้มเหลว
- สังเกตค่าต่อไปนี้จากการติดตาม
ข้อผิดพลาด:
Bad Form Data
รัฐ:
PROXY_REQ_FLOW
error.class:
com.apigee.rest.framework.BadRequestException
- ค่าของข้อผิดพลาด
Bad Form Data
ระบุว่าแบบฟอร์ม พารามิเตอร์ มีอักขระบางตัวที่ไม่ได้รับอนุญาต - ค่าของรัฐ
PROXY_REQ_FLOW,
บ่งบอกว่า เกิดข้อผิดพลาดในโฟลว์คำขอของพร็อกซี API
- ค่าของข้อผิดพลาด
- ไปที่ระยะ AX (Analytics Data Recorded) ในการติดตามและคลิก ได้
เลื่อนลงไปที่ส่วน Phase Details - Error Headers และ กำหนดค่าของ X-Apigee-fault-code, X-Apigee-fault-source และ X-Apigee-fault-policy ดังที่แสดงด้านล่าง
โปรดทราบว่าค่าของ X-Apigee-fault-code และ X-Apigee-fault-source คือ
protocol.http.BadFormData
และpolicy
ตามลำดับ และ X-Apigee-fault-policy ไม่ว่างเปล่า ซึ่งเป็นการระบุว่าข้อผิดพลาด เกิดขึ้นขณะที่นโยบายเฉพาะที่ระบุไว้ใน X-Apigee-fault-policy ถูก อ่านหรือแยกข้อมูลแบบฟอร์ม (พารามิเตอร์แบบฟอร์ม) ซึ่งมีอักขระที่ ไม่ได้รับอนุญาตส่วนหัวการตอบกลับ ค่า X-Apigee-fault-code protocol.http.BadFormData
X-Apigee-fault-source policy
X-Apigee-fault-policy extractvariables/EV-ExtractFormParams
- ในตัวอย่างนี้ X-Apigee-fault-policy คือ
extractvariables/EV- ExtractFormParams,
ซึ่งหมายความว่านโยบาย ExtractVariable ที่ชื่อว่าEV-ExtractFormParams
ล้มเหลวขณะอ่านหรือแตกข้อมูลแบบฟอร์ม พารามิเตอร์
NGINX
วิธีวินิจฉัยข้อผิดพลาดโดยใช้บันทึกการเข้าถึง NGINX
- หากคุณเป็นผู้ใช้ Private Cloud คุณสามารถใช้บันทึกการเข้าถึง NGINX เพื่อ
ระบุข้อมูลสำคัญเกี่ยวกับ HTTP
500 Internal Server Error
ตรวจสอบบันทึกการเข้าถึง NGINX ดังต่อไปนี้
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- ค้นหาว่ามีข้อผิดพลาด
500
ที่มีรหัสข้อผิดพลาดไหมprotocol.http.BadFormData
ในช่วงระยะเวลาหนึ่ง (หากปัญหา เกิดขึ้นในอดีต) หรือหากมีคำขอใดที่ยังคงล้มเหลว500
หากคุณพบข้อผิดพลาด
500
ที่มี X-Apigee-fault-code ตรงกับค่าของprotocol.http.BadFormData
จากนั้น ระบุค่าของ X-Apigee-fault-source และ X-Apigee-fault-policy.ตัวอย่างข้อผิดพลาด 500 จากบันทึกการเข้าถึง NGINX
ตัวอย่างรายการข้างต้นจากบันทึกการเข้าถึง NGINX มีค่าต่อไปนี้สำหรับ X-Apigee-fault-code และ X-Apigee-fault-source:
ส่วนหัว ค่า X-Apigee-fault-code protocol.http.BadFormData
X-Apigee-fault-source policy
X-Apigee-fault-policy extractvariables/EV-ExtractFormParams
- โปรดทราบว่าค่าของ X-Apigee-fault-code, X-Apigee-fault-source
เท่ากับ
protocol.http.BadFormData
policy
ตามลำดับ และ X-Apigee-fault-policy ไม่ว่างเปล่า ซึ่งเป็นการระบุว่าข้อผิดพลาด เกิดขึ้นขณะที่นโยบายเฉพาะที่ระบุไว้ใน X-Apigee-fault-policy, ถูก อ่านหรือแยกข้อมูลแบบฟอร์ม (พารามิเตอร์แบบฟอร์ม) ซึ่งมีอักขระที่ ไม่ได้รับอนุญาต - ในตัวอย่างนี้ X-Apigee-fault-policy คือ
extractvariables/EV- ExtractFormParams,
ซึ่งหมายความว่านโยบาย ExtractVariable ที่ชื่อว่าEV-ExtractFormParams
ล้มเหลวขณะอ่านแบบฟอร์ม พารามิเตอร์
สาเหตุ: พารามิเตอร์แบบฟอร์มในคำขอมีอักขระที่ไม่อนุญาต
การวินิจฉัย
- กำหนดรหัสข้อผิดพลาด แหล่งที่มาของข้อผิดพลาด และนโยบายข้อผิดพลาดสำหรับ
500 Internal Server Error
โดยใช้การตรวจสอบ API, เครื่องมือการติดตาม หรือบันทึกการเข้าถึง NGINX ตามที่อธิบายไว้ ในขั้นตอนการวิเคราะห์ทั่วไป - หาก Fault Code คือ
protocol.http.BadFormData
แสดงว่า Fault Source จะมี ค่าproxy
หรือpolicy
และ Fault Policy ไม่ใช่ค่า ว่างเปล่า, จากนั้นจะบ่งชี้ว่านโยบายที่ระบุใน,ล้มเหลวขณะที่ อ่านหรือแยกข้อมูลแบบฟอร์ม (พารามิเตอร์ของฟอร์ม) - ตรวจสอบนโยบายที่ระบุไว้ในนโยบายข้อผิดพลาดและระบุสิ่งต่อไปนี้
ข้อมูล:
- แหล่งที่มา: ระบุว่านโยบายกำลังอ่านหรือดึงข้อมูลจาก คำขอหรือการตอบกลับ
- พารามิเตอร์แบบฟอร์ม: ระบุพารามิเตอร์แบบฟอร์มเฉพาะเจาะจงที่กําลังอ่านใน
ตัวอย่าง #1
ตัวอย่างที่ 1: นโยบาย ExtractVariable ในการดึงข้อมูลพารามิเตอร์แบบฟอร์ม
<ExtractVariables name="EV-ExtractFormParms"> <DisplayName>EV-ExtractFormParams</DisplayName> <Source>request</Source> <FormParam name="username"> <Pattern ignoreCase="false">{username}</Pattern> </FormParam> <FormParam name="password"> <Pattern ignoreCase="false">{password}</Pattern> </FormParam> <VariablePrefix>forminfo</VariablePrefix> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ExtractVariables>
ในนโยบาย ExtractVariable ข้างต้น
แหล่งที่มา:
request
ระบุโดยองค์ประกอบ
<Source>
พารามิเตอร์แบบฟอร์ม:
username
และpassword
ซึ่งระบุโดยองค์ประกอบ
<Pattern>
ภายในองค์ประกอบ องค์ประกอบ<FormParam>
พารามิเตอร์นี้ระบุว่าพารามิเตอร์ของฟอร์ม
username
และ/หรือpassword
ส่งผ่านเป็นส่วนหนึ่งของคำขอ HTTP โดยไคลเอ็นต์ไปยัง Apigee Edge มีอักขระที่ไม่ได้รับอนุญาตให้ใช้งานตัวอย่าง #2
ตัวอย่างที่ 2: พารามิเตอร์แบบฟอร์มการคัดลอกนโยบาย AssignMessage
<AssignMessage continueOnError="false" enabled="true" name="AM-CopyFormParams"> <Copy source="request"> <FormParams> <FormParam name="username"/> <FormParam name="password"/> </FormParams> </Copy> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
ในนโยบาย ExtractVariable ข้างต้น
แหล่งที่มา:
request
ซึ่งระบุโดยแอตทริบิวต์
source
ใน องค์ประกอบ<Copy>
พารามิเตอร์แบบฟอร์ม:
username
และpassword
ซึ่งระบุโดยแอตทริบิวต์
name
ใน องค์ประกอบ<FormParam>
พารามิเตอร์นี้ระบุว่าพารามิเตอร์ของฟอร์ม
username
หรือpassword
หรือ ทั้ง 2 รายการที่ส่งเป็นส่วนหนึ่งของคำขอ HTTP โดยไคลเอ็นต์ไปยัง Apigee Edge มีรายการ อักขระที่ไม่อนุญาตให้ใช้
ตรวจสอบว่ามีอักขระที่ไม่ได้รับอนุญาตหรือไม่ อักขระที่ใช้ในพารามิเตอร์แบบฟอร์มที่ระบุในขั้นตอนที่ 3 โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
เครื่องมือการติดตาม
วิธีตรวจสอบโดยใช้เครื่องมือติดตาม
- หากคุณได้บันทึกการติดตามสำหรับคำขอที่ล้มเหลวตามที่อธิบายไว้ใน ขั้นตอนการวิเคราะห์ทั่วไป แล้วเลือกหนึ่งใน คำขอที่ไม่สำเร็จ
- หากคุณระบุว่าพารามิเตอร์ฟอร์มมีอักขระ
ที่ ไม่ได้รับอนุญาต ให้ใช้เป็นส่วนหนึ่งของคำขอ HTTP ใน
ขั้นตอนที่ 3 ด้านบน จากนั้น
- ไปที่ระยะคำขอที่ได้รับจากไคลเอ็นต์
เลื่อนลงไปที่ส่วนรายละเอียดระยะ และตรวจสอบ ส่งคำขอเนื้อหา
- ในตัวอย่างด้านบน โปรดทราบว่าพารามิเตอร์แบบฟอร์ม
password
มีเครื่องหมายเปอร์เซ็นต์ (%
) - เนื่องจากเครื่องหมายเปอร์เซ็นต์ (
%
) ยังใช้สำหรับ การเข้ารหัสเปอร์เซ็นต์กับอักขระพิเศษ จะใช้ตามที่เป็นไม่ได้ ข้อมูลแบบฟอร์ม - ดังนั้น Apigee Edge จะตอบสนองด้วย
500 Internal Server Error
ที่มีรหัสข้อผิดพลาดprotocol.http.BadFormData
คำขอจริง
วิธีตรวจสอบโดยใช้คำขอจริงมีดังนี้
- หากคุณไม่มีสิทธิ์เข้าถึงคำขอจริงที่ส่งไปยังเซิร์ฟเวอร์เป้าหมาย ให้ไปที่ความละเอียด
- หากคุณมีสิทธิ์เข้าถึงคำขอจริงที่ส่งไปยัง Apigee Edge ให้ทำการดำเนินการ
ขั้นตอนต่อไปนี้
- ตรวจสอบเนื้อหาข้อมูลแบบฟอร์มและดูว่ามีอักขระที่
ไม่อนุญาตให้ใช้ เช่น เครื่องหมายเปอร์เซ็นต์ (
%
) หรือเครื่องหมายเปอร์เซ็นต์ (%
) ตามด้วย อักขระฐานสิบหกตัวอย่าง #1
ตัวอย่างคำขอที่ 1: ข้อมูลในแบบฟอร์มซึ่งเป็นส่วนหนึ่งของคำขอ
curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=123456abc123&client_secret=c23578%ZY"
ในตัวอย่างนี้ โปรดทราบว่าองค์ประกอบ
client_secret
มีเครื่องหมายเปอร์เซ็นต์ (%
) ตามด้วย อักขระฐานสิบหกไม่ถูกต้องZY
ตัวอย่าง #2
ตัวอย่างคำขอ #2: ข้อมูลแบบฟอร์มที่ส่งในไฟล์
curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d @form_data.xml
เนื้อหาของ form_data.xml:
xml=<user><username>abc1234@google.com</username><password>qwerty12345!@#$%</password></user>
ในตัวอย่างนี้ โปรดทราบว่าองค์ประกอบ
password
มีเครื่องหมายเปอร์เซ็นต์ (%
) ซึ่งไม่ควร ตามที่อยู่ในข้อมูลแบบฟอร์ม
- ตรวจสอบเนื้อหาข้อมูลแบบฟอร์มและดูว่ามีอักขระที่
ไม่อนุญาตให้ใช้ เช่น เครื่องหมายเปอร์เซ็นต์ (
- ใน 2 ตัวอย่างด้านบน ข้อมูลแบบฟอร์มที่ส่งเป็นส่วนหนึ่งของคำขอ HTTP ไปยัง Apigee Edge มีอักขระที่ไม่ได้รับอนุญาตให้ใช้งาน
- ดังนั้น Apigee Edge จะตอบสนองด้วย
500 Internal Server Error
มีรหัสข้อผิดพลาดprotocol.http.BadFormData
ความละเอียด
- ตรวจสอบว่าสัญลักษณ์พิเศษทั้งในคีย์และค่าของข้อมูลแบบฟอร์มหรือพารามิเตอร์ ส่งเป็นส่วนหนึ่งของคำขอ HTTP โดยไคลเอ็นต์มีการเข้ารหัสเสมอตามที่อธิบายไว้ใน ข้อมูลแบบฟอร์ม - application/x-www-form-urlencrypted
- สำหรับตัวอย่างที่พูดถึงข้างต้น คุณสามารถแก้ไขปัญหาได้ดังนี้
ตัวอย่าง #1
ตัวอย่างที่ 1: ข้อมูลแบบฟอร์มที่ส่งผ่านเป็นส่วนหนึ่งของคำขอ
ใช้ ที่ถูกต้อง อักขระเลขฐานสิบหกที่ตรงกับรหัส ASCII สำหรับอักขระที่ระบุ เช่น หากคุณต้องการส่งเครื่องหมายดอลลาร์ (
$
) ให้ใช้%24
ดังที่แสดงด้านล่างcurl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=123456abc123&client_secret=c23578%24"
ตัวอย่าง #2
ตัวอย่างคำขอ #2: ข้อมูลแบบฟอร์มที่ส่งในไฟล์
curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d @form_data.xml
เนื้อหาของ form_data.xml:
ใช้เมนู การเข้ารหัสเปอร์เซ็นต์สำหรับเครื่องหมายเปอร์เซ็นต์ (
%
) ซึ่งแก้ไขไฟล์เป็น มี%25
ดังที่แสดงด้านล่างxml=<user><username>abc1234@google.com</username><password>qwerty12345!!@#$%25</password></user>
ข้อมูลจำเพาะ
Apigee Edge คาดว่าจะมีการส่งข้อมูลแบบฟอร์มตามข้อกำหนดต่อไปนี้
ข้อมูลจำเพาะ |
---|
ข้อมูลแบบฟอร์ม - application/x-www-form-urlencoded |
หากยังต้องการความช่วยเหลือจากทีมสนับสนุนของ Apigee ให้ไปที่ต้องรวบรวม ข้อมูลการวินิจฉัย
ต้องรวบรวมข้อมูลการวินิจฉัย
หากปัญหายังคงอยู่แม้ว่าจะทำตามคำแนะนำด้านบนแล้ว ให้รวบรวมข้อมูลต่อไปนี้ ข้อมูลการวินิจฉัย จากนั้นติดต่อฝ่ายสนับสนุนของ Apigee Edge
หากคุณเป็นผู้ใช้ระบบคลาวด์สาธารณะ โปรดระบุข้อมูลต่อไปนี้
- ชื่อองค์กร
- ชื่อสภาพแวดล้อม
- ชื่อพร็อกซี API
- ทำตามคำสั่ง
curl
ในการสร้างซ้ำ500 Internal Server Error
ที่มีรหัสข้อผิดพลาดprotocol.http.BadFormData
- ไฟล์การติดตามสำหรับคำขอ API
หากคุณเป็นผู้ใช้ Private Cloud ให้ระบุข้อมูลต่อไปนี้
- พบข้อความแสดงข้อผิดพลาดทั้งหมดสำหรับคำขอที่ล้มเหลว
- ชื่อสภาพแวดล้อม
- แพ็กเกจพร็อกซี API
- ไฟล์การติดตามสำหรับคำขอ API
บันทึกการเข้าถึง NGINX
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
ที่ไหน: ORG, ENV และ PORT# จะถูกแทนที่ด้วย มูลค่าจริง
บันทึกของระบบโปรแกรมประมวลผลข้อความ
/opt/apigee/var/log/edge-message-processor/logs/system.log