400 খারাপ অনুরোধ - DecompressionFailureAtRequest

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

লক্ষণ

এপিআই কলের প্রতিক্রিয়া হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশনটি 400 Bad Request HTTP স্ট্যাটাস কোড এবং messaging.adaptors.http.flow.DecompressionFailureAtRequest এরর কোডটি পায়।

ত্রুটি বার্তা

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

HTTP/1.1 400 Bad Request

এছাড়াও, আপনি নীচে দেখানোটির মতো একটি ত্রুটি বার্তা দেখতে পারেন:

{
   "fault":{
      "faultstring":"Decompression failure at request",
      "detail":{
         "errorcode":"messaging.adaptors.http.flow.DecompressionFailureAtRequest"
      }
   }
}

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

এই ত্রুটিটি শুধুমাত্র তখনই ঘটে যদি:

  • HTTP অনুরোধ হেডার Content-Encoding এ নির্দিষ্ট করা এনকোডিংটি বৈধ এবং Apigee Edge দ্বারা সমর্থিত
  • কিন্তু

  • HTTP অনুরোধের অংশ হিসেবে ক্লায়েন্ট কর্তৃক প্রেরিত পেলোড ফরম্যাটটি Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিং ফরম্যাটের সাথে মেলে না।

এর কারণ হলো, Apigee Edge নির্দিষ্ট এনকোডিং ব্যবহার করে পেলোডটি ডিকোড করতে ব্যর্থ হয়, যেহেতু পেলোডের ফরম্যাটটি Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিংয়ের ফরম্যাটের মতো নয়।

এখানে সমর্থিত Content-Encoding মানগুলির কয়েকটি উদাহরণ এবং সেই ক্ষেত্রে Apigee Edge পেলোড ফরম্যাটটি কেমন হবে বলে আশা করে, তা দেওয়া হলো:

দৃশ্যকল্প বিষয়বস্তু-এনকোডিং প্রত্যাশিত পেলোড ফরম্যাট
একক এনকোডিং জিজিপ

ইউনিক্স gzip ফরম্যাট।

RFC1952 GZIP ফরম্যাট দেখুন।

একক এনকোডিং স্ফীত করা

এই ফরম্যাটটি ডিফ্লেট কম্প্রেশন অ্যালগরিদমের সাথে zlib কাঠামো ব্যবহার করে।

RFC1950 এবং RFC1951 দেখুন .

একাধিক এনকোডিং

একাধিক এনকোডিং

উদাহরণস্বরূপ, যখন এনকোডিং দুইবার করা হয়, তখন তা হতে পারে:

  • gzip, deflate
  • জিজিপ, জিজিপ
  • ডিফ্লেট, জিজিপ
  • চুপসে যাওয়া, চুপসে যাওয়া
হেডারে প্রদর্শিত ক্রমানুসারে পেলোডের উপর একাধিক এনকোডিং প্রয়োগ করা হয়েছে।

এই ত্রুটির সম্ভাব্য কারণগুলো নিম্নরূপ:

কারণ বর্ণনা সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য
অনুরোধ পেলোড ফরম্যাট Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিংয়ের সাথে মেলে না। ক্লায়েন্ট কর্তৃক প্রেরিত রিকোয়েস্ট পেলোডের ফরম্যাটটি হয় এনকোড করা নেই অথবা Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিংয়ের সাথে মেলে না। এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা

সাধারণ রোগ নির্ণয়ের পদক্ষেপ

এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:

এপিআই মনিটরিং

এপিআই মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:

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

  3. Analyze > API Monitoring > Investigate পৃষ্ঠায় যান।
  4. সেই নির্দিষ্ট সময়সীমাটি নির্বাচন করুন যার মধ্যে আপনি ত্রুটিগুলো লক্ষ্য করেছেন।
  5. নিশ্চিত করুন যে প্রক্সি ফিল্টারটি ‘সকল’ (All) এ সেট করা আছে।
  6. সময়ের সাপেক্ষে ফল্ট কোডের লেখচিত্র অঙ্কন করুন।
  7. নীচে দেখানো অনুযায়ী, যে সেলটিতে messaging.adaptors.http.flow.DecompressionFailureAtRequest ফল্ট কোডটি রয়েছে, সেটি নির্বাচন করুন:

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

  8. ফল্ট কোড messaging.adaptors.http.flow.DecompressionFailureAtRequest সম্পর্কিত তথ্য নিচে দেখানো হলো:

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

  9. 'View logs'-এ ক্লিক করুন এবং 400 এরর-এর কারণে ফেইল হওয়া সারিটি এক্সপ্যান্ড করুন।

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

  10. লগস উইন্ডো থেকে নিম্নলিখিত বিবরণগুলো নোট করুন:
    • স্ট্যাটাস কোড: 400
    • ত্রুটির উৎস: proxy
    • ত্রুটি কোড: messaging.adaptors.http.flow.DecompressionFailureAtRequest .
  11. যদি ফল্ট সোর্সের মান ' proxy হয়, তাহলে তা নির্দেশ করে যে রিকোয়েস্ট পেলোড ফরম্যাটটি Content-Encoding হেডারে নির্দিষ্ট করা সমর্থিত এনকোডিংয়ের সাথে মেলেনি।

ট্রেস টুল

ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. ট্রেস সেশনটি সক্রিয় করুন এবং নিম্নলিখিতগুলির মধ্যে যেকোনো একটি:
    1. 400 Bad Request ত্রুটিটি ঘটার জন্য অপেক্ষা করুন, অথবা
    2. আপনি যদি সমস্যাটি পুনরায় তৈরি করতে পারেন, তাহলে এপিআই কলটি করুন এবং 400 Bad Request পুনরায় দেখান।
  2. নিশ্চিত করুন যে 'Show all FlowInfos' চালু আছে:

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

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

  6. ট্রেস থেকে প্রপার্টিগুলোর মানগুলো লক্ষ্য করুন:

    • ত্রুটি: Decompression failure at request
    • error.class : com.apigee.rest.framework.BadRequestException
    • ত্রুটির কারণ: Not in GZIP format

    error.cause- এ বলা হয়েছে যে রিকোয়েস্ট পেলোডটি GZIP ফরম্যাটে নেই। এর মানে হলো, Apigee Edge আশা করছিল যে রিকোয়েস্ট পেলোডটি GZIP ফরম্যাটে থাকবে, কারণ Content-Encoding হেডারে তা উল্লেখ করা থাকত।

  7. রিকোয়েস্ট হেডার Content-Encoding এর মান নির্ধারণ করুন। এর জন্য, নিচে দেখানো অনুযায়ী 'Request Received from Client' ধাপে যান:

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

    উল্লেখ্য যে, রিকোয়েস্ট হেডার Content-Encoding এর মান প্রকৃতপক্ষে gzip

    উপরের নমুনা ট্রেস থেকে দেখা যায় যে, রিকোয়েস্ট হেডার Content-Encoding এ নির্দিষ্ট করা এনকোডিং হলো gzip ; কিন্তু রিকোয়েস্ট পেলোডটি GZIP ফরম্যাটে নেই। তাই, Apigee gzip ব্যবহার করে পেলোডটি ডিকম্প্রেস করতে পারছে না এবং Decompression failure at request ত্রুটিটি দেখাচ্ছে।

  8. Apigee Edge দ্বারা ফেরত আসা স্ট্যাটাস কোড এবং ত্রুটির বার্তাটি নোট করুন।

    ট্রেস-এর 'Response Sent to Client' পর্যায়ে, যা নিচে দেখানো হয়েছে:

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

    ট্রেস থেকে নিম্নলিখিত বিবরণগুলো লক্ষ্য করুন:

    • স্ট্যাটাস কোড: 400 Bad Request
    • ত্রুটির বিবরণ: {"fault":{"faultstring":"Decompression failure at request","detail":{"errorcode":"messaging.adaptors.http.flow.DecompressionFailureAtRequest"}}}
  9. ট্রেসটিতে থাকা AX (অ্যানালিটিক্স ডেটা রেকর্ড করা হয়েছে) পর্যায়ে যান এবং এটিতে ক্লিক করুন।

  10. Phase Details , Error Headers সেকশনে স্ক্রল ডাউন করুন এবং নিচে দেখানো অনুযায়ী X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান নির্ধারণ করুন:

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

  11. আপনি X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান messaging.adaptors.http.flow.DecompressionFailureAtRequest এবং policy হিসেবে দেখতে পাবেন, যা নির্দেশ করে যে অনুরোধের পেলোড ফরম্যাটটি Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিংয়ের সাথে মেলেনি।
    প্রতিক্রিয়া হেডার মূল্য
    এক্স-এপিজি-ফল্ট-কোড messaging.adaptors.http.flow.DecompressionFailureAtRequest
    এক্স-এপিজি-ফল্ট-সোর্স policy

এনজিআইএনএক্স

NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP 400 ত্রুটি সম্পর্কিত মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন।
  2. NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:

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

    যেখানে: ORG , ENV , এবং PORT# প্রকৃত মান দ্বারা প্রতিস্থাপিত হয়।

  3. একটি নির্দিষ্ট সময়কালে কোনো 400 এরর ছিল কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো রিকোয়েস্ট 400 এর কারণে ফেইল করছে কিনা, তা খুঁজে দেখুন।
  4. যদি আপনি messaging.adaptors.http.flow.DecompressionFailureAtRequest এর মানের সাথে মিলে যাওয়া X-Apigee-fault-code সহ কোনো 400 এরর খুঁজে পান, তাহলে X-Apigee-fault-source-এর মান নির্ধারণ করুন।

    NGINX অ্যাক্সেস লগ থেকে প্রাপ্ত একটি নমুনা 400 এরর:

    NGINX অ্যাক্সেস লগ থেকে নেওয়া উপরের নমুনা এন্ট্রিটিতে X-Apigee-fault-code এবং X-Apigee-fault-source-এর জন্য নিম্নলিখিত মানগুলি রয়েছে:

    প্রতিক্রিয়া হেডার মূল্য
    এক্স-এপিজি-ফল্ট-কোড messaging.adaptors.http.flow.DecompressionFailureAtRequest
    এক্স-এপিজি-ফল্ট-সোর্স policy

কারণ: অনুরোধ পেলোড ফরম্যাটটি Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিংয়ের সাথে মেলে না।

ডিফল্টরূপে, যদি রিকোয়েস্ট হেডার Content-Encoding একটি বৈধ এবং সমর্থিত এনকোডিং থাকে, তাহলে Apigee Edge সর্বদা পেলোডটি ডিকম্প্রেস করে। অতএব, আশা করা হয় যে রিকোয়েস্ট পেলোডের ফরম্যাটটি রিকোয়েস্ট হেডার Content-Encoding এ নির্দিষ্ট করা এনকোডিংয়ের সাথে মিলবে । যদি কোনো অমিল থাকে, তাহলে আপনি এই এররটি পাবেন।

রোগ নির্ণয়

  1. সাধারণ রোগ নির্ণয়ের ধাপগুলিতে ব্যাখ্যা করা অনুযায়ী API মনিটরিং, ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে পরিলক্ষিত ত্রুটির জন্য ফল্ট কোড এবং ফল্ট সোর্স নির্ধারণ করুন।
  2. যদি ফল্ট কোডটি messaging.adaptors.http.flow.DecompressionFailureAtRequest হয় এবং ফল্ট সোর্সের মান policy বা proxy হয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা প্রেরিত অনুরোধের পেলোডটি অনুরোধ হেডার Content-Encoding এ নির্দিষ্ট করা সমর্থিত এনকোডিংয়ের সাথে মেলে না।
  3. আপনি HTTP অনুরোধের অংশ হিসেবে নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে অমিলটি নির্ধারণ করতে পারেন:

    ত্রুটি বার্তা

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

    1. আপনার কাছে যদি Apigee Edge থেকে প্রাপ্ত সম্পূর্ণ এরর মেসেজটি থাকে, তাহলে faultstring টি দেখুন।

      নমুনা ত্রুটি বার্তা:

      "faultstring":"Decompression failure at request"
    2. উপরের ত্রুটি বার্তায় "Decompression failure at request" প্রদর্শিত হচ্ছে, যার অর্থ হলো Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিং ব্যবহার করে অনুরোধটি ডিকম্প্রেস করা যায়নি।

    ট্রেস

    ট্রেস ব্যবহার করে যাচাই করতে:

    1. সাধারণ রোগ নির্ণয়ের ধাপগুলিতে যেমন ব্যাখ্যা করা হয়েছে, সেই অনুযায়ী Trace ব্যবহার করে রিকোয়েস্ট হেডার Content-Encoding এবং error.cause প্রপার্টির মান নির্ধারণ করুন।
    2. স্যাম্পল ট্রেস থেকে প্রাপ্ত মানগুলো নিম্নরূপ:

      • কন্টেন্ট-এনকোডিং: gzip
      • ত্রুটির কারণ: Not in GZIP format

      রিকোয়েস্ট হেডারের Content-Encoding- এর মান gzip ; কিন্তু রিকোয়েস্ট পেলোডটি GZIP ফরম্যাটে নেই (যেমনটি error.cause দ্বারা নির্দেশিত)। তাই, Apigee Edge 400 Bad Request এবং messaging.adaptors.http.flow.DecompressionFailureAtRequest এরর কোড দিয়ে সাড়া দেয়।

    প্রকৃত অনুরোধ

    প্রকৃত অনুরোধ ব্যবহার করে যাচাই করতে:

    ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:

    1. রিকোয়েস্ট হেডার Content-Encoding এ পাঠানো মানটি নির্ধারণ করুন।
    2. অনুরোধের অংশ হিসেবে পাঠানো পেলোডের ফরম্যাট নির্ধারণ করুন।
    3. যদি Content-Encoding হেডারের মান সমর্থিত এনকোডিংয়ের তালিকায় থাকে, কিন্তু রিকোয়েস্ট পেলোডের ফরম্যাট Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিংয়ের সাথে না মেলে, তাহলে সেটাই সমস্যার কারণ।

      নমুনা অনুরোধ:

      curl -v "http://HOSTALIAS/v1/testgzip" -H "Content-Encoding: gzip" -X POST -d @request_payload.zip
      

      উপরের নমুনা অনুরোধটি Content-Encoding হেডারে gzip ভ্যালুটি পাঠায়, যা Apigee Edge-এ একটি সমর্থিত এনকোডিং । কিন্তু, অনুরোধের পেলোড request_payload.zip টি ZIP ফরম্যাটে রয়েছে। ফলে, এই অনুরোধটি 400 Bad Request স্ট্যাটাস কোড এবং messaging.adaptors.http.flow.DecompressionFailureAtRequest এরর কোড সহ ব্যর্থ হয়।

    মেসেজ প্রসেসর লগ

    মেসেজ প্রসেসর লগ ব্যবহার করে যাচাই করতে:

    আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP 400 ত্রুটি সম্পর্কিত মূল তথ্য নির্ধারণ করতে মেসেজ প্রসেসর লগ ব্যবহার করতে পারেন।

    1. সাধারণ রোগ নির্ণয়ের ধাপগুলিতে যেমন ব্যাখ্যা করা হয়েছে, সেই অনুযায়ী এপিআই মনিটরিং, ট্রেস টুল বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে ব্যর্থ হওয়া অনুরোধটির মেসেজ আইডি নির্ধারণ করুন।
    2. মেসেজ প্রসেসর লগে মেসেজ আইডিটি অনুসন্ধান করুন:

      /opt/apigee/var/log/edge-message-processor/logs/system.log

    3. আপনি নিম্নলিখিত ব্যতিক্রমগুলির মধ্যে একটি দেখতে পাবেন:

      দৃশ্যকল্প #১

      দৃশ্যকল্প #১: যখন এপিআই অনুরোধের হেডারে Content-Encoding: gzip থাকে

      2021-07-28 10:21:16,861  NIOThread@0 ERROR HTTP.SERVER -
      HTTPServer$Context.onInputException() : Message id:rt-57-1
      SSLClientChannel[Accepted: Remote:192.168.199.8:8443
      Local:192.168.80.234:44284]@28469 useCount=1 bytesRead=0
      bytesWritten=28764 age=2739893ms  lastIO=0ms
      isOpen=true.onExceptionRead exception: {}
      java.util.zip.ZipException: Not in GZIP format
      
      2021-07-28 10:21:16,862  NIOThread@0 ERROR ADAPTORS.HTTP.FLOW -
      AbstractRequestListener.onException() : Request:POST, uri:/test,
      message Id:rt-57-1, exception:java.util.zip.ZipException: Not in GZIP format,
      context:Context@71ea5ac input=ClientInputChannel(SSLClientChannel[Accepted:
      Remote:192.168.199.8:8443 Local:192.168.80.234:44284]@28469 useCount=1
      bytesRead=0 bytesWritten=28764 age=2739894ms  lastIO=0ms  isOpen=true)
      2021-07-28 10:21:16,862  NIOThread@0 INFO  HTTP.SERVICE -
      ExceptionHandler.handleException() :
      Exception java.util.zip.ZipException: Not in GZIP format occurred while writing
      to channel null
      2021-07-28 10:21:16,863  NIOThread@0 INFO  HTTP.SERVICE -
      ExceptionHandler.handleException() : Exception trace:
      java.util.zip.ZipException: Not in GZIP format
      

      উপরের এরর মেসেজে থাকা java.util.zip.ZipException: Not in GZIP format লাইনটি নির্দেশ করে যে, Content-Encoding হিসেবে gzip নির্দিষ্ট করা সত্ত্বেও রিকোয়েস্ট পেলোডটি GZIP ফরম্যাটে পাঠানো হয়নি। তাই, Apigee Edge এক্সেপশনটি থ্রো করে এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলোতে messaging.adaptors.http.flow.DecompressionFailureAtRequest ফল্ট কোডসহ একটি 400 স্ট্যাটাস কোড রিটার্ন করে।

      দৃশ্যকল্প #২

      দৃশ্যকল্প #২: যখন এপিআই অনুরোধের হেডারে Content-Encoding: deflate থাকে

      2021-07-28 15:26:31,893  NIOThread@1 ERROR HTTP.SERVER -
      HTTPServer$Context.onInputException() : Message id:rt-47875-1
      SSLClientChannel[Accepted: Remote:192.168.199.8:8443
      Local:192.168.81.72:45954]@29276 useCount=1 bytesRead=0
      bytesWritten=37230 age=3498856ms  lastIO=1ms
      isOpen=true.onExceptionRead exception: {}
      java.util.zip.ZipException: incorrect header check
                        ….
      Caused by: java.util.zip.DataFormatException: incorrect header check
             ..
      2021-07-28 15:26:31,894  NIOThread@1 ERROR ADAPTORS.HTTP.FLOW -
      AbstractRequestListener.onException() : Request:POST, uri:/test,
      message Id:rrt-47875-1, exception:java.util.zip.ZipException:
      incorrect header check, context:Context@69b3ac45
      input=ClientInputChannel(SSLClientChannel[Accepted:
      Remote:192.168.199.8:8443 Local:192.168.81.72:45954]@29276
      useCount=1 byt	esRead=0 bytesWritten=37230 age=3498856ms
      lastIO=1ms  isOpen=true)
      

      উপরের এরর মেসেজে থাকা java.util.zip.ZipException: incorrect header check এবং Caused by: java.util.zip.DataFormatException: incorrect header check লাইনগুলো নির্দেশ করে যে, রিকোয়েস্ট পেলোডটি ডিফ্লেট ফরম্যাটে পাঠানো হয়নি এবং এটি ডিফ্লেটের Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিংয়ের সাথে মেলে না। তাই, Apigee Edge এক্সেপশনটি থ্রো করে এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলোতে messaging.adaptors.http.flow.DecompressionFailureAtRequest ফল্ট কোডসহ একটি 400 স্ট্যাটাস কোড রিটার্ন করে।

সমাধান

  1. Apigee Edge-এর API প্রক্সি ফ্লো এবং ব্যাকএন্ড সার্ভারে যদি কম্প্রেসড রিকোয়েস্ট পেলোডের প্রয়োজন না থাকে, তাহলে Content-Encoding হেডারটি পাস করবেন না । যদি রিকোয়েস্ট পেলোড কম্প্রেস করার প্রয়োজন হয়, তাহলে ধাপ ২-এ যান।
  2. নিশ্চিত করুন যে ক্লায়েন্ট অ্যাপ্লিকেশনটি সর্বদা নিম্নলিখিতগুলি পাঠায়:
    • অনুরোধে Content-Encoding হেডারের মান হিসাবে যেকোনো সমর্থিত এনকোডিং ব্যবহার করা যাবে।
    • Apigee Edge-এ পাঠানো অনুরোধের পেলোডটি সমর্থিত ফরম্যাটে Content-Encoding হেডারে নির্দিষ্ট করা এনকোডিং ফরম্যাটের সাথে মেলে।
  3. উপরে আলোচিত উদাহরণে, রিকোয়েস্ট পেলোডটি ZIP ফরম্যাটে আছে, কিন্তু রিকোয়েস্ট হেডারে Content-Encoding: gzip উল্লেখ করা আছে। আপনি রিকোয়েস্ট হেডারটি Content-Encoding: gzip হিসেবে এবং রিকোয়েস্ট পেলোডটিও gzip ফরম্যাটে পাঠিয়ে সমস্যাটি সমাধান করতে পারেন:
    curl -v "https://HOSTALIAS/v1/testgzip" -H "Content-Encoding: gzip" -X POST -d @request_payload.gz
    

স্পেসিফিকেশন

নিম্নলিখিত RFC স্পেসিফিকেশন অনুসারে, Apigee Edge 400 Bad Request স্ট্যাটাস কোড এবং messaging.adaptors.http.flow.DecompressionFailureAtRequest এরর কোড দিয়ে সাড়া দেয়:

স্পেসিফিকেশন
আরএফসি ৭২৩১, ধারা ৬.৫.১
আরএফসি ৭২৩১, ধারা ৩.১.২.২

আপনার যদি এখনও Apigee Support-এর কাছ থেকে কোনো সাহায্যের প্রয়োজন হয়, তাহলে Must gather diagnostic information- এ যান।

রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে

নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন, এবং তারপর Apigee Edge Support-এর সাথে যোগাযোগ করুন:

আপনি যদি পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:

  • সংস্থার নাম
  • পরিবেশের নাম
  • এপিআই প্রক্সি নাম
  • 400 ত্রুটিটি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণ curl কমান্ড।
  • এপিআই অনুরোধগুলির ট্রেস ফাইল

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

  • ব্যর্থ অনুরোধগুলির জন্য সম্পূর্ণ ত্রুটি বার্তা পরিলক্ষিত হয়েছে।
  • পরিবেশের নাম
  • এপিআই প্রক্সি বান্ডেল
  • এপিআই অনুরোধগুলির ট্রেস ফাইল
  • 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