ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 - BadFormData

คุณกำลังดูเอกสารประกอบของ 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

การส่งข้อมูลแบบฟอร์ม

  1. ประเภทเนื้อหา: 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 สำหรับอักขระเครื่องหมายเปอร์เซ็นต์ (%)
  2. ประเภทเนื้อหา: หลายส่วน/form-data

    หากต้องการส่งข้อมูลไบนารีหรือข้อความจำนวนมากที่มีอักขระที่ไม่ใช่ ASCII คุณอาจส่งข้อมูลด้วยContent-Type: หลายส่วน/แบบฟอร์ม-ข้อมูลตามที่อธิบายไว้ใน ฟอร์ม - ส่วนที่ 17.13.4.2

สาเหตุที่เป็นไปได้

ข้อผิดพลาดนี้จะเกิดขึ้นในกรณีที่ตรงกับเงื่อนไขต่อไปนี้ทั้งหมดเท่านั้น

  1. คำขอ HTTP ที่ไคลเอ็นต์ส่งไปยัง Apigee Edge มีดังนี้
    1. Content-Type: application/x-www-form-urlencoded และ
    2. ข้อมูลในแบบฟอร์มที่มีเครื่องหมายเปอร์เซ็นต์ (%) หรือเครื่องหมายเปอร์เซ็นต์ (%) ตามด้วยอักขระฐานสิบหกที่ไม่ถูกต้องซึ่งไม่ได้รับอนุญาตตาม แบบฟอร์ม - ส่วนที่ 17.13.4.1
  2. พร็อกซี API ใน Apigee Edge จะอ่านพารามิเตอร์ของแบบฟอร์มที่เฉพาะเจาะจงซึ่งมีอักขระที่ไม่ได้รับอนุญาตให้ใช้ในขั้นตอนการส่งคำขอโดยใช้ ExtractVariable หรือนโยบาย AssignMessage

    เช่น หากข้อมูลในแบบฟอร์มมีเครื่องหมายเปอร์เซ็นต์ (%) ตามที่เป็น (ไม่มีการเข้ารหัส) หรือเครื่องหมายเปอร์เซ็นต์ (%) ตามด้วยอักขระฐานสิบหกที่ไม่ถูกต้องในคีย์และ/หรือค่า คุณจะได้รับข้อผิดพลาดนี้

    สาเหตุที่เป็นไปได้ของข้อผิดพลาดนี้มีดังนี้

    สาเหตุ คำอธิบาย วิธีการแก้ปัญหาที่ใช้กับ
    พารามิเตอร์แบบฟอร์มในคำขอมีอักขระที่ไม่อนุญาต พารามิเตอร์แบบฟอร์มที่ส่งผ่านในฐานะส่วนหนึ่งของคำขอ HTTP โดยไคลเอ็นต์มีอักขระที่ไม่ได้รับอนุญาตให้ใช้ ผู้ใช้ Edge Public และ Private Cloud

ขั้นตอนการวินิจฉัยทั่วไป

ใช้เครื่องมือ/เทคนิคอย่างใดอย่างหนึ่งต่อไปนี้เพื่อวิเคราะห์ข้อผิดพลาดนี้

การตรวจสอบ API

วิธีวินิจฉัยข้อผิดพลาดโดยใช้ API Monitoring

  1. ลงชื่อเข้าใช้ UI ของ Apigee Edge ในฐานะผู้ใช้ที่มีบทบาทที่เหมาะสม
  2. เปลี่ยนเป็นองค์กรที่คุณต้องการตรวจสอบปัญหา

  3. ไปที่หน้าวิเคราะห์ > การตรวจสอบ API > ตรวจสอบ
  4. เลือกกรอบเวลาเฉพาะที่คุณพบข้อผิดพลาด
  5. พล็อตโค้ดข้อผิดพลาดเทียบกับเวลา

  6. เลือกเซลล์ที่มีรหัสข้อผิดพลาด protocol.http.BadFormData ดังที่แสดงด้านล่าง

    (ดูรูปภาพขนาดใหญ่ขึ้น)

  7. ข้อมูลเกี่ยวกับรหัสข้อผิดพลาด protocol.http.BadFormData จะแสดงอยู่ดังที่แสดงด้านล่าง

    (ดูรูปภาพขนาดใหญ่ขึ้น)

  8. คลิกดูบันทึกแล้วขยายแถวสําหรับคําขอที่ล้มเหลว

  9. ดูรายละเอียดต่อไปนี้จากหน้าต่าง Logs
    • รหัสสถานะ: 500
    • แหล่งที่มาของข้อผิดพลาด: proxy
    • รหัสข้อผิดพลาด: protocol.http.BadFormData
    • นโยบายข้อผิดพลาด: extractvariables/EV-ExtractFormParams
  10. หากแหล่งที่มาของข้อผิดพลาดคือ proxy โค้ดข้อผิดพลาดคือ protocol.http.BadFormData และนโยบายข้อผิดพลาดต้องไม่ว่างเปล่า จะบ่งชี้ว่าข้อผิดพลาดนั้นเกิดขึ้นในขณะที่นโยบายที่เจาะจงซึ่งระบุไว้ในนโยบายข้อผิดพลาดกำลังอ่านหรือแตกข้อมูลแบบฟอร์ม (พารามิเตอร์แบบฟอร์ม) ซึ่งมีอักขระที่ไม่ได้รับอนุญาตให้ใช้
  11. ในตัวอย่างนี้ X-Apigee-fault-policy คือ extractvariables/EV- ExtractFormParams, ซึ่งหมายความว่านโยบาย ExtractVariant ที่ชื่อ EV-ExtractFormParams ดำเนินการไม่สำเร็จขณะอ่านหรือแตกข้อมูลพารามิเตอร์ของฟอร์ม

เครื่องมือการติดตาม

วิธีวินิจฉัยข้อผิดพลาดโดยใช้เครื่องมือติดตาม

  1. เปิดใช้เซสชันการติดตาม และเลือกดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
    • รอจนกว่าจะเกิดข้อผิดพลาด 500 Internal Server Error หรือ
    • หากทำให้ปัญหาเกิดซ้ำได้ ให้เรียก API เพื่อจำลองปัญหา 500 Internal Server Error
  2. ตรวจสอบว่าเปิดใช้ Show FlowInfos ทั้งหมดแล้ว โดยทำดังนี้

  3. เลือกคำขอที่ล้มเหลว 1 รายการและตรวจสอบการติดตาม
  4. ไปยังระยะต่างๆ ของการติดตามและค้นหาตำแหน่งที่ความล้มเหลวเกิดขึ้น
  5. โดยทั่วไปแล้ว คุณจะพบข้อผิดพลาดในนโยบายอย่างใดอย่างหนึ่งต่อไปนี้

    ในการติดตามตัวอย่างด้านบน โปรดทราบว่าเกิดข้อผิดพลาดในนโยบาย ExtractVariable ชื่อ EV-ExtractFormParams

  6. ไปที่ขั้นตอนที่ชื่อ Error หลังนโยบายเฉพาะที่ดำเนินการไม่สำเร็จ ดังนี้

  7. จดจำค่าต่อไปนี้จากการติดตาม

    ข้อผิดพลาด: Bad Form Data

    รัฐ: PROXY_REQ_FLOW

    error.class: com.apigee.rest.framework.BadRequestException

    • ค่าของข้อผิดพลาด Bad Form Data บ่งบอกว่าพารามิเตอร์แบบฟอร์มมีอักขระบางตัวที่ไม่ได้รับอนุญาตให้ใช้
    • ค่าสถานะ PROXY_REQ_FLOW, บ่งบอกว่าเกิดข้อผิดพลาดในโฟลว์คำขอของพร็อกซี API
  8. ไปที่เฟส AX (บันทึกข้อมูล Analytics) ในการติดตาม แล้วคลิกค่านี้
  9. เลื่อนลงไปที่ส่วน Phase Details - Error Headers และระบุค่าของ X-Apigee-fault-code, X-Apigee-fault-source และ X-Apigee-fault-policy ตามที่แสดงด้านล่าง

  10. โปรดทราบว่าค่าของ 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
  11. ในตัวอย่างนี้ X-Apigee-fault-policy คือ extractvariables/EV- ExtractFormParams, ซึ่งหมายความว่านโยบาย ExtractVariable ชื่อ EV-ExtractFormParams ล้มเหลวขณะอ่านหรือแตกข้อมูลพารามิเตอร์ของฟอร์ม

NGINX

วิธีวินิจฉัยข้อผิดพลาดโดยใช้บันทึกการเข้าถึง NGINX

  1. หากเป็นผู้ใช้ Private Cloud คุณจะใช้บันทึกการเข้าถึง NGINX เพื่อระบุข้อมูลสำคัญเกี่ยวกับ HTTP 500 Internal Server Error ได้
  2. ตรวจสอบบันทึกการเข้าถึง NGINX ดังนี้

    /opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log

  3. ค้นหาเพื่อดูว่ามีข้อผิดพลาด 500 ที่มีรหัสข้อผิดพลาด protocol.http.BadFormData ในช่วงเวลาที่ระบุหรือไม่ (หากปัญหาเกิดขึ้นในอดีต) หรือมีคำขอใดที่ยังคงล้มเหลวด้วย 500
  4. หากพบข้อผิดพลาด 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
  5. โปรดทราบว่าค่าของ X-Apigee-fault-code, X-Apigee-fault-source คือ protocol.http.BadFormData policy ตามลำดับ และ X-Apigee-fault-policy ต้องไม่ว่างเปล่า ซึ่งหมายความว่าข้อผิดพลาดเกิดขึ้นขณะที่นโยบายที่ระบุไว้ใน X-Apigee-fault-policy, กำลังอ่านหรือแยกข้อมูลแบบฟอร์ม (พารามิเตอร์ของแบบฟอร์ม) ซึ่งมีอักขระที่X-Apigee-fault-policy,ให้ใช้
  6. ในตัวอย่างนี้ X-Apigee-fault-policy คือ extractvariables/EV- ExtractFormParams, ซึ่งหมายความว่านโยบาย ExtractVariable ชื่อ EV-ExtractFormParams ล้มเหลวขณะอ่านพารามิเตอร์ของฟอร์ม

สาเหตุ: พารามิเตอร์แบบฟอร์มในคำขอมีอักขระที่ไม่อนุญาตให้ใช้

การวินิจฉัย

  1. กำหนดFault Code, Fault Source และนโยบาย Fault สำหรับ 500 Internal Server Error โดยใช้การตรวจสอบ API, เครื่องมือ Trace หรือบันทึกการเข้าถึง NGINX ตามที่อธิบายไว้ในขั้นตอนการวินิจฉัยทั่วไป
  2. หาก Fault Code คือ protocol.http.BadFormData, Fault Source มีค่า proxy หรือ policy และ Fault Policy ไม่ว่างเปล่า นั่นหมายความว่านโยบายที่ระบุในนโยบายข้อผิดพลาดล้มเหลวขณะอ่านหรือดึงข้อมูลแบบฟอร์ม (พารามิเตอร์ของฟอร์ม)
  3. อ่านนโยบายที่ระบุในนโยบายข้อผิดพลาดและระบุข้อมูลต่อไปนี้
    1. แหล่งที่มา: ระบุว่านโยบายกำลังอ่านหรือดึงข้อมูลจากคำขอหรือการตอบกลับ
    2. พารามิเตอร์แบบฟอร์ม: กำหนดพารามิเตอร์แบบฟอร์มที่เฉพาะเจาะจงที่กำลังอ่านในนโยบาย

      ตัวอย่าง #1

      ตัวอย่างที่ 1: การแยกตัวแปรของนโยบายการแยกตัวแปรของพารามิเตอร์ของแบบฟอร์ม:

            <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 มีอักขระที่ไม่ได้รับอนุญาตให้ใช้

  4. ตรวจสอบว่ามีอักขระที่ไม่ได้รับอนุญาตให้ใช้ในพารามิเตอร์แบบฟอร์มที่ระบุในขั้นตอนที่ 3 โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้หรือไม่

    เครื่องมือการติดตาม

    วิธีตรวจสอบโดยใช้เครื่องมือติดตาม

    1. หากคุณได้บันทึกการติดตามสำหรับคำขอที่ล้มเหลวตามที่อธิบายไว้ในขั้นตอนการวิเคราะห์ทั่วไป ให้เลือกคำขอที่ล้มเหลวรายการใดรายการหนึ่ง
    2. หากคุณพิจารณาแล้วว่าพารามิเตอร์แบบฟอร์มที่มีอักขระที่ไม่ได้รับอนุญาตให้ใช้นั้นเป็นส่วนหนึ่งของคำขอ HTTP ในขั้นตอนที่ 3 ข้างต้น
      1. ไปที่ขั้นตอนคำขอที่ได้รับจากไคลเอ็นต์
      2. เลื่อนลงไปที่ส่วนรายละเอียดระยะ และตรวจสอบเนื้อหาคำขอ

        ( ดูรูปภาพขนาดใหญ่ขึ้น)

      3. ในตัวอย่างข้างต้น โปรดทราบว่าพารามิเตอร์ของฟอร์ม password มีเครื่องหมายเปอร์เซ็นต์ (%)
      4. เนื่องจากระบบใช้เครื่องหมายเปอร์เซ็นต์ (%) สำหรับ การเข้ารหัสเปอร์เซ็นต์สัญลักษณ์พิเศษด้วย จึงไม่สามารถใช้เครื่องหมายนี้ตามที่เป็นอยู่ในข้อมูลแบบฟอร์ม
      5. ดังนั้น Apigee Edge จะตอบกลับด้วย 500 Internal Server Error ด้วยรหัสข้อผิดพลาด protocol.http.BadFormData

    คำขอจริง

    วิธีตรวจสอบโดยใช้คำขอจริง

    1. หากคุณไม่มีสิทธิ์เข้าถึงคำขอจริงที่ส่งไปยังเซิร์ฟเวอร์เป้าหมาย ให้ไปที่การแก้ปัญหา
    2. หากคุณมีสิทธิ์เข้าถึงคำขอจริงที่ส่งไปยัง Apigee Edge ให้ทำตามขั้นตอนต่อไปนี้
      1. ตรวจสอบเนื้อหาข้อมูลในแบบฟอร์มและดูว่ามีอักขระที่ไม่ได้รับอนุญาตให้ใช้หรือไม่ เช่น เครื่องหมายเปอร์เซ็นต์ (%) หรือเครื่องหมายเปอร์เซ็นต์ (%) ตามด้วยอักขระฐานสิบหกที่ไม่ถูกต้อง

        ตัวอย่าง #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 มีเครื่องหมายเปอร์เซ็นต์ (%) ซึ่งไม่ควรส่งตามที่เป็นในข้อมูลแบบฟอร์ม

    3. ใน 2 ตัวอย่างข้างต้น ข้อมูลแบบฟอร์มที่ส่งเป็นส่วนหนึ่งของคำขอ HTTP ไปยัง Apigee Edge มีอักขระที่ไม่ได้รับอนุญาตให้ใช้
    4. ดังนั้น Apigee Edge จะตอบกลับด้วย 500 Internal Server Error ด้วยรหัสข้อผิดพลาด protocol.http.BadFormData

ความละเอียด

  1. ตรวจสอบว่าสัญลักษณ์พิเศษทั้งในคีย์และค่าของข้อมูลแบบฟอร์มหรือพารามิเตอร์ที่ส่งไปเป็นส่วนหนึ่งของคำขอ HTTP โดยไคลเอ็นต์ได้รับการเข้ารหัสเสมอตามที่อธิบายไว้ใน ข้อมูลแบบฟอร์ม - application/x-www-form-urlencoded
  2. สำหรับตัวอย่างที่กล่าวถึงข้างต้น คุณสามารถแก้ไขปัญหาได้ดังนี้

    ตัวอย่าง #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

รายการอ้างอิง