500 ইন্টার্নাল সার্ভার সমস্যা - BadFormData

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

সমস্যার উপসর্গ

API কলের উত্তর হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশন 500 Internal Server Error HTTP স্ট্যাটাস কোড সহ protocol.http.BadFormData সমস্যার কোড পায়।

সমস্যা সংক্রান্ত মেসেজ

ক্লায়েন্ট অ্যাপ্লিকেশন নিম্নলিখিত রেসপন্স কোড পায়:

HTTP/1.1 500 Internal Server Error

এছাড়াও, আপনি নিম্নলিখিত সমস্যার মেসেজ দেখতে পেতে পারেন:

{
   "fault":{
      "faultstring":"Bad Form Data",
      "detail":{
         "errorcode":"protocol.http.BadFormData"
      }
   }
}

ফর্ম ডেটা

এই সমস্যার সমাধান করার ব্যাপারে বিস্তারিত আলোচনা করার আগে, ফর্ম ডেটা কী তা বুঝে নেওয়া যাক।

ফর্ম ডেটা হল ব্যবহারকারীর প্রদান করা তথ্য যা সাধারণত HTML ফর্মের মাধ্যমে প্রদান করা হয়। এই ফর্মে টেক্সট ইনপুট বক্স, বোতাম বা চেকবক্সের মতো এলিমেন্ট থাকে। ফর্ম ডেটা সাধারণত HTTP অনুরোধ বা উত্তর হিসেবে কী-ভ্যালু পেয়ারের একটি সিরিজ হিসেবে পাঠানো হয়।

ফর্ম ডেটা ট্রান্সমিশন

  1. Content-Type: application/x-www-form-urlencoded
    • ফর্ম ডেটার সাইজ ছোট হলে, ডেটা কী-ভ্যালু পেয়ার হিসেবে পাঠানো হয়, যার মধ্যে থাকে:
      • দুটি কীয়ের অক্ষরই ফর্ম - বিভাগ ১৭.১৩.৪.১-এ ব্যাখ্যা করা নিয়ম অনুযায়ী এনকোড করা হয়
      • হেডার 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"
      
    • কী ও ভ্যালু, দু'টিতেই বর্ণসাংখ্যিক অক্ষর ছাড়া অন্য যেকোনও অক্ষরকে পার্সেন্ট এনকোড করা হয়, অর্থাৎ, সেগুলিকে অক্ষর ট্রিপলেট %HH হিসেবে দেখানো হয়, যার মধ্যে একটি পার্সেন্ট চিহ্ন থাকে এবং তারপরে দুটি হেক্সাডেসিমাল ডিজিট থাকে যা নির্দিষ্ট অক্ষরের ASCII কোডকে দেখায়।
    • তাই, ফর্ম ডেটাতে শতাংশের চিহ্ন (%) ব্যবহার করা গেলেও, এটিকে বিশেষ এস্কেপ সিকোয়েন্সের শুরু হিসেবে ব্যাখ্যা করা হয়। তাই, ফর্ম ডেটার কী বা ভ্যালুতে পার্সেন্ট চিহ্ন (%) থাকলে, সেটি %25, হিসেবে ট্রান্সমিট করতে হবে, যা পার্সেন্ট চিহ্ন (%) ক্যারেক্টারের ASCII কোডকে রিপ্রেজেন্ট করে।
  2. Content-Type: multipart/form-data

    আপনি যদি প্রচুর পরিমাণে বাইনারি ডেটা বা নন-ASCII ক্যারেক্টার সহ টেক্সট ট্রান্সমিট করতে চান, তাহলে আপনি Forms - Section 17.13.4.2-এ ব্যাখ্যা করা Content-Type: multipart/form-data সহ ডেটা পাঠাতে পারেন

সম্ভাব্য কারণ

নিম্নলিখিত সব শর্ত পূরণ হলেই শুধুমাত্র এই সমস্যাটি হয়:

  1. ক্লায়েন্টের পাঠানো Apigee Edge-এ HTTP অনুরোধে এগুলি থাকে:
    1. Content-Type: application/x-www-form-urlencoded, এবং
    2. শতাংশ চিহ্ন (%) সহ ফর্ম ডেটা অথবা শতাংশ চিহ্ন (%)-এর পরে ভুল হেক্সাডেসিমেল অক্ষর যা ফর্ম - বিভাগ ১৭.১৩.৪.১ অনুযায়ী অনুমোদিত নয়।
  2. ExtractVariables বা AssignMessage নীতি ব্যবহার করে অনুরোধ ফ্লোতে ব্যবহার করার জন্য অনুমতি নেই এমন কোনও অক্ষর থাকা নির্দিষ্ট ফর্ম প্যারামিটার Apigee Edge-এর API প্রক্সি পড়ে।

    যেমন, ফর্ম ডেটাতে যদি হুবহু (এনকোডিং ছাড়া ) পার্সেন্ট চিহ্ন (%) থাকে অথবা পার্সেন্ট চিহ্ন (%)-এর পরে কোনও ভুল হেক্সাডেসিমেল অক্ষর কী এবং/অথবা ভ্যালুতে থাকে, তাহলে আপনি এই সমস্যাটি পাবেন।

    এই সমস্যার সম্ভাব্য কারণগুলি এখানে দেওয়া হল:

    কারণ বিবরণ এর জন্য প্রযোজ্য সমস্যার সমাধান সংক্রান্ত নির্দেশাবলী
    অনুরোধে ফর্ম প্যারামিটারে এমন অক্ষর আছে যা অনুমোদিত নয় ক্লায়েন্টের পাঠানো HTTP অনুরোধের অংশ হিসেবে পাস করা ফর্ম প্যারামিটারে এমন কোনও ক্যারেক্টার রয়েছে যা ব্যবহার করার অনুমতি নেই। এজ পাবলিক ও প্রাইভেট ক্লাউড ব্যবহারকারী

সাধারণ ডায়াগনসিস ধাপ

এই সমস্যা ডায়াগনসিস করতে নিম্নলিখিত টুল/টেকনিকের মধ্যে একটি ব্যবহার করুন:

API মনিটরিং

API মনিটরিং ব্যবহার করে সমস্যার ডায়াগনসিস করতে:

  1. Apigee Edge UI-তে সাইন-ইন করুন এমন ব্যবহারকারী হিসেবে যার উপযুক্ত ভূমিকা আছে।
  2. যে প্রতিষ্ঠানে সমস্যাটি তদন্ত করতে চান সেটিতে পরিবর্তন করুন।

  3. বিশ্লেষণ করুন > API মনিটরিং > তদন্ত করুন পৃষ্ঠায় নেভিগেট করুন।
  4. আপনি যে নির্দিষ্ট সময়সীমার মধ্যে সমস্যাটি লক্ষ্য করেছেন সেটি বেছে নিন।
  5. সময় অনুযায়ী সমস্যার কোড প্লট করুন।

  6. এমন একটি সেল বেছে নিন যেখানে protocol.http.BadFormData ফল্ট কোডটি নিচে দেখানো হয়েছে:

    (বড় ছবি দেখুন)

  7. সমস্যার কোড protocol.http.BadFormData সম্পর্কে তথ্য নিচে দেখানো উপায়ে দেখানো হয়:

    (বড় ছবি দেখুন)

  8. লগ দেখুন বিকল্পে ক্লিক করুন এবং ব্যর্থ অনুরোধের সারিটি বড় করে দেখুন।

  9. লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণগুলি নোট করুন:
    • স্ট্যাটাস কোড: 500
    • সমস্যার সোর্স: proxy
    • সমস্যার কোড: protocol.http.BadFormData
    • ত্রুটি সংক্রান্ত নীতি: extractvariables/EV-ExtractFormParams
  10. সমস্যার সোর্স proxy হলে, সমস্যার কোড protocol.http.BadFormData হলে এবং সমস্যার নীতি খালি না হলে, এর অর্থ হল সমস্যার নীতিতে উল্লেখ করা নির্দিষ্ট নীতি ফর্ম ডেটা (ফর্ম প্যারামিটার) রিড বা এক্সট্র্যাক্ট করার সময় সমস্যা হয়েছে, যেটিতে এমন ক্যারেক্টার আছে যা ব্যবহার করার অনুমতি নেই।
  11. এই উদাহরণে, X-Apigee-fault-policy হল extractvariables/EV- ExtractFormParams, , যার অর্থ হল, EV-ExtractFormParams নামের ExtractVariables নীতি ফর্ম প্যারামিটার রিড বা এক্সট্র্যাক্ট করার সময় কাজ করেনি।

ট্রেস টুল

Trace টুল ব্যবহার করে সমস্যার ডায়াগনসিস করতে:

  1. ট্রেস সেশন চালু করুন এবং এগুলির মধ্যে একটি:
    • 500 Internal Server Error সমস্যার জন্য অপেক্ষা করুন অথবা
    • আপনি যদি সমস্যাটি আবার তৈরি করতে পারেন, তাহলে সমস্যাটি আবার তৈরি করতে API কল করুন 500 Internal Server Error
  2. সব FlowInfo দেখুন বিকল্প চালু আছে কিনা দেখুন:

  3. কাজ না করা অনুরোধগুলির মধ্যে একটি বেছে নিন এবং ট্রেস পরীক্ষা করুন।
  4. ট্রেসের বিভিন্ন ফেজ নেভিগেট করুন এবং কোথায় সমস্যা হয়েছে তা খুঁজে বের করুন।
  5. আপনি সাধারণত নিচে দেখানো নীতিগুলির মধ্যে কোনও একটিতে সমস্যা দেখতে পাবেন:

    উপরের নমুনা ট্রেসে, মনে রাখবেন যে EV-ExtractFormParams নামের ExtractVariables নীতিতে সমস্যা হয়েছে।

  6. যে নির্দিষ্ট নীতি কাজ করেনি, তার পরে সমস্যা নামের ফ্লোতে নেভিগেট করুন:

  7. ট্রেস থেকে নিম্নলিখিত ভ্যালুগুলি নোট করুন:

    সমস্যা: Bad Form Data

    রাজ্য: PROXY_REQ_FLOW

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

    • Bad Form Data ভ্যালু থেকে বোঝা যায় যে ফর্মের প্যারামিটারে এমন কিছু অক্ষর আছে যা ব্যবহার করার অনুমতি নেই।
    • state-এর ভ্যালু PROXY_REQ_FLOW, থেকে বোঝা যায় যে API প্রক্সির অনুরোধ ফ্লোতে সমস্যা হয়েছে।
  8. ট্রেসে AX (রেকর্ড করা অ্যানালিটিক্স ডেটা) ফেজে নেভিগেট করুন এবং সেটিতে ক্লিক করুন।
  9. নিচের দিকে স্ক্রল করে ফেজের বিবরণ - সমস্যার হেডার বিভাগে যান এবং নিচে দেখানো 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, যার অর্থ হল ExtractVariables নীতিটি EV-ExtractFormParams ফর্মের প্যারামিটার রিড বা এক্সট্র্যাক্ট করার সময় কাজ করেনি।

NGINX

NGINX অ্যাক্সেস লগ ব্যবহার করে সমস্যার ডায়াগনসিস করতে:

  1. আপনি প্রাইভেট ক্লাউড ব্যবহারকারী হলে, HTTP 500 Internal Server Error সম্পর্কে মূল তথ্য নির্ধারণ করতে আপনি NGINX অ্যাক্সেস লগ ব্যবহার করতে পারবেন।
  2. NGINX অ্যাক্সেস লগ চেক করুন:

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

  3. নির্দিষ্ট সময়সীমার মধ্যে (যদি সমস্যাটি অতীতে হয়ে থাকে) 500 error with error code protocol.http.BadFormData আছে কিনা তা সার্চ করে দেখুন অথবা এখনও কোনও অনুরোধ ব্যর্থ হচ্ছে কিনা 500 দেখুন।
  4. আপনি যদি X-Apigee-fault-code-এর সাথে কোনও 500 সমস্যা খুঁজে পান যা protocol.http.BadFormData-এর মানের সাথে ম্যাচ করে, তাহলে X-Apigee-fault-source এবং X-Apigee-fault-policy-এর মান নির্ধারণ করুন।

    NGINX অ্যাক্সেস লগ থেকে 500 সমস্যার নমুনা:

    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-তে উল্লেখ করা নির্দিষ্ট নীতি ফর্ম ডেটা (ফর্ম প্যারামিটার) রিড বা এক্সট্র্যাক্ট করার সময় সমস্যা হয়েছে, কারণ তাতে এমন কোনও অক্ষর ছিল যা ব্যবহার করার অনুমতি নেই।
  6. এই উদাহরণে, X-Apigee-fault-policy হল extractvariables/EV- ExtractFormParams, যার অর্থ হল ExtractVariables নামের নীতি EV-ExtractFormParams ফর্মের প্যারামিটার পড়ার সময় ব্যর্থ হয়েছে।

কারণ: অনুরোধে থাকা ফর্ম প্যারামিটারে এমন অক্ষর আছে যা অনুমোদিত নয়

ডায়াগনসিস

  1. 500 Internal Server Error-এর জন্য সমস্যার কোড, সমস্যার সোর্স ও সমস্যার নীতি নির্ধারণ করুন। API মনিটরিং, ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে এটি করা যায়। এই বিষয়ে সাধারণ ডায়াগনসিস ধাপ বিভাগে ব্যাখ্যা করা হয়েছে।
  2. ফল্ট কোড protocol.http.BadFormData হলে, ফল্ট সোর্সে proxy বা policy ভ্যালু থাকলে এবং ফল্ট পলিসি খালি না থাকলে , তাহলে এটি ইঙ্গিত করে যে ফর্ম ডেটা (ফর্ম প্যারামিটার) পড়ার বা এক্সট্র্যাক্ট করার সময় ফল্ট পলিসিতে উল্লেখ করা নীতি কাজ করেনি।
  3. ত্রুটি সংক্রান্ত নীতিতে উল্লিখিত নীতি পরীক্ষা করে দেখুন এবং নিম্নলিখিত তথ্য নির্ধারণ করুন:
    1. সোর্স: নীতিটি অনুরোধ বা উত্তর থেকে ডেটা পড়ছে বা এক্সট্র্যাক্ট করছে কিনা তা নির্ধারণ করুন।
    2. ফর্ম প্যারামিটার: নীতিতে পড়া হচ্ছে এমন নির্দিষ্ট ফর্ম প্যারামিটার নির্ধারণ করুন।

      নমুনা #১

      Sample #১: ExtractVariables নীতি ফর্ম প্যারামিটার এক্সট্র্যাক্ট করছে:

            <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>
            

      উপরের ExtractVariables নীতিতে:

      • সোর্স: request

        <Source> এলিমেন্ট দিয়ে এটি বোঝানো হয়

      • ফর্ম প্যারামিটার: username ও password

        এটি <FormParam> এলিমেন্টের মধ্যে থাকা <Pattern> এলিমেন্ট দ্বারা নির্দেশিত হয়

      এর থেকে বোঝা যায় যে ক্লায়েন্ট Apigee Edge-এ HTTP অনুরোধ করার সময় username এবং/অথবা password ফর্ম প্যারামিটার হিসেবে যে ভ্যালু পাস করেছে তাতে ব্যবহার করা যায় না এমন অক্ষর রয়েছে।

      নমুনা #২

      Sample #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>
            

      উপরের ExtractVariables নীতিতে:

      • সোর্স: request

        এটি <Copy> এলিমেন্টের মধ্যে source অ্যাট্রিবিউট দ্বারা নির্দেশিত হয়

      • ফর্ম প্যারামিটার: username এবং password

        এটি <FormParam> এলিমেন্টের মধ্যে থাকা name অ্যাট্রিবিউট দ্বারা নির্দেশিত হয়

      এর থেকে বোঝা যায় যে ক্লায়েন্ট Apigee Edge-এ HTTP অনুরোধ পাঠানোর সময় ফর্ম প্যারামিটার username বা password বা দুটিই পাস করেছে এবং সেগুলিতে এমন অক্ষর আছে যা ব্যবহার করার অনুমতি নেই।

  4. ধাপ ৩-এ চিহ্নিত করা ফর্ম প্যারামিটারে অনুমতি নেই এমন কোনও অক্ষর ব্যবহার করা হয়েছে কিনা তা নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে চেক করুন:

    ট্রেস টুল

    Trace টুল ব্যবহার করে যাচাই করতে:

    1. আপনি যদি সাধারণ ডায়াগনসিস ধাপ-এ ব্যাখ্যা করা ব্যর্থ অনুরোধের জন্য ট্রেস ক্যাপচার করে থাকেন, তাহলে ব্যর্থ অনুরোধগুলির মধ্যে একটি বেছে নিন।
    2. আপনি যদি নির্ধারণ করে থাকেন যে, কোনও অক্ষর যুক্ত ফর্ম প্যারামিটার যা ব্যবহার করার জন্য অনুমতি নেই তা উপরে উল্লিখিত ধাপ ৩-এ HTTP অনুরোধের অংশ, তাহলে
      1. ক্লায়েন্টের থেকে অনুরোধ পাওয়া গেছে ফেজে নেভিগেট করুন।
      2. নিচের দিকে স্ক্রল করে ফেজ সংক্রান্ত বিবরণ বিভাগে যান এবং কন্টেন্টের অনুরোধ পর্যালোচনা করুন।

        ( আরও বড় ছবি দেখুন)

      3. উপরের উদাহরণে, মনে রাখবেন যে ফর্ম প্যারামিটার password এ শতাংশের চিহ্ন (%) আছে।
      4. যেহেতু শতাংশের চিহ্ন (%) এছাড়াও শতাংশ এনকোডিং বিশেষ অক্ষরগুলির জন্য ব্যবহার করা হয়, তাই এটি ফর্ম ডেটাতে যেমন আছে তেমন ব্যবহার করা যাবে না।
      5. তাই, Apigee Edge 500 Internal Server Error সহ উত্তর দেয় এবং এরর কোড হল protocol.http.BadFormData.

    আসল অনুরোধ

    আসল অনুরোধ ব্যবহার করে যাচাই করতে:

    1. টার্গেট সার্ভারে করা আসল অনুরোধের অ্যাক্সেস আপনার কাছে না থাকলে, সমাধান বিভাগে যান।
    2. Apigee Edge-এ করা আসল অনুরোধের অ্যাক্সেস আপনার কাছে থাকলে, নিচে দেওয়া ধাপগুলি অনুসরণ করুন:
      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 আছে।

        নমুনা #২

        অনুরোধের নমুনা #২: ফাইলে ফর্ম ডেটা পাস করা হয়েছে:

        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. উপরের দুটি উদাহরণে, Apigee Edge-এ পাঠানো HTTP অনুরোধের অংশ হিসেবে ফর্ম ডেটাতে এমন অক্ষর রয়েছে যা ব্যবহার করার অনুমতি নেই।
    4. তাই, Apigee Edge 500 Internal Server Error এর সাথে protocol.http.BadFormData এরর কোড সহ উত্তর দেয়।

রেজোলিউশন

  1. ক্লায়েন্টের পাঠানো HTTP অনুরোধের অংশ হিসেবে ফর্ম ডেটা বা প্যারামিটারের কী ও ভ্যালু, দু'টিতেই কোনও বিশেষ অক্ষর থাকলে তা যেন সবসময় ফর্ম ডেটা - application/x-www-form-urlencoded-এ দেওয়া ব্যাখ্যা অনুযায়ী এনকোড করা হয়, তা নিশ্চিত করুন।
  2. উপরে আলোচনা করা উদাহরণগুলির ক্ষেত্রে, আপনি নিম্নলিখিত উপায়ে সমস্যা সমাধান করতে পারবেন:

    নমুনা #১

    নমুনা #১: অনুরোধের অংশ হিসেবে ফর্ম ডেটা পাস করা হয়েছে:

    নির্দিষ্ট অক্ষরের ASCII কোডের সাথে ম্যাচ করে এমন বৈধ হেক্সাডেসিমেল অক্ষর ব্যবহার করুন। যেমন, আপনি যদি ডলার চিহ্ন ($) পাঠাতে চান, তাহলে নিচে দেখানো %24 ব্যবহার করুন:

    curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=123456abc123&client_secret=c23578%24"
    

    নমুনা #২

    অনুরোধের নমুনা #২: ফাইলে ফর্ম ডেটা পাস করা হয়েছে:

    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 অনুরোধের জন্য ট্রেস ফাইল

আপনি প্রাইভেট ক্লাউড ব্যবহারকারী হলে, নিম্নলিখিত তথ্য দিন:

  • অনুরোধ সম্পূর্ণ না হওয়ার ক্ষেত্রে দেখা সম্পূর্ণ সমস্যার মেসেজ
  • পরিবেশের নাম
  • 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

রেফারেন্স