আপনি 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 অনুরোধ বা উত্তর হিসেবে কী-ভ্যালু পেয়ারের একটি সিরিজ হিসেবে পাঠানো হয়।
ফর্ম ডেটা ট্রান্সমিশন
- 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 কোডকে রিপ্রেজেন্ট করে।
- ফর্ম ডেটার সাইজ ছোট হলে, ডেটা কী-ভ্যালু পেয়ার হিসেবে পাঠানো হয়, যার মধ্যে থাকে:
- Content-Type: multipart/form-data
আপনি যদি প্রচুর পরিমাণে বাইনারি ডেটা বা নন-ASCII ক্যারেক্টার সহ টেক্সট ট্রান্সমিট করতে চান, তাহলে আপনি Forms - Section 17.13.4.2-এ ব্যাখ্যা করা
Content-Type:multipart/form-data সহ ডেটা পাঠাতে পারেন
সম্ভাব্য কারণ
নিম্নলিখিত সব শর্ত পূরণ হলেই শুধুমাত্র এই সমস্যাটি হয়:
- ক্লায়েন্টের পাঠানো Apigee Edge-এ HTTP অনুরোধে এগুলি থাকে:
Content-Type: application/x-www-form-urlencoded, এবং- শতাংশ চিহ্ন (
%) সহ ফর্ম ডেটা অথবা শতাংশ চিহ্ন (%)-এর পরে ভুল হেক্সাডেসিমেল অক্ষর যা ফর্ম - বিভাগ ১৭.১৩.৪.১ অনুযায়ী অনুমোদিত নয়।
ExtractVariables বা AssignMessage নীতি ব্যবহার করে অনুরোধ ফ্লোতে ব্যবহার করার জন্য অনুমতি নেই এমন কোনও অক্ষর থাকা নির্দিষ্ট ফর্ম প্যারামিটার Apigee Edge-এর API প্রক্সি পড়ে।
যেমন, ফর্ম ডেটাতে যদি হুবহু (এনকোডিং ছাড়া ) পার্সেন্ট চিহ্ন (
%) থাকে অথবা পার্সেন্ট চিহ্ন (%)-এর পরে কোনও ভুল হেক্সাডেসিমেল অক্ষর কী এবং/অথবা ভ্যালুতে থাকে, তাহলে আপনি এই সমস্যাটি পাবেন।এই সমস্যার সম্ভাব্য কারণগুলি এখানে দেওয়া হল:
কারণ বিবরণ এর জন্য প্রযোজ্য সমস্যার সমাধান সংক্রান্ত নির্দেশাবলী অনুরোধে ফর্ম প্যারামিটারে এমন অক্ষর আছে যা অনুমোদিত নয় ক্লায়েন্টের পাঠানো HTTP অনুরোধের অংশ হিসেবে পাস করা ফর্ম প্যারামিটারে এমন কোনও ক্যারেক্টার রয়েছে যা ব্যবহার করার অনুমতি নেই। এজ পাবলিক ও প্রাইভেট ক্লাউড ব্যবহারকারী
সাধারণ ডায়াগনসিস ধাপ
এই সমস্যা ডায়াগনসিস করতে নিম্নলিখিত টুল/টেকনিকের মধ্যে একটি ব্যবহার করুন:
API মনিটরিং
API মনিটরিং ব্যবহার করে সমস্যার ডায়াগনসিস করতে:
- Apigee Edge UI-তে সাইন-ইন করুন এমন ব্যবহারকারী হিসেবে যার উপযুক্ত ভূমিকা আছে।
যে প্রতিষ্ঠানে সমস্যাটি তদন্ত করতে চান সেটিতে পরিবর্তন করুন।
- বিশ্লেষণ করুন > API মনিটরিং > তদন্ত করুন পৃষ্ঠায় নেভিগেট করুন।
- আপনি যে নির্দিষ্ট সময়সীমার মধ্যে সমস্যাটি লক্ষ্য করেছেন সেটি বেছে নিন।
সময় অনুযায়ী সমস্যার কোড প্লট করুন।
এমন একটি সেল বেছে নিন যেখানে
protocol.http.BadFormDataফল্ট কোডটি নিচে দেখানো হয়েছে:
সমস্যার কোড
protocol.http.BadFormDataসম্পর্কে তথ্য নিচে দেখানো উপায়ে দেখানো হয়:
লগ দেখুন বিকল্পে ক্লিক করুন এবং ব্যর্থ অনুরোধের সারিটি বড় করে দেখুন।
- লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণগুলি নোট করুন:
- স্ট্যাটাস কোড:
500 - সমস্যার সোর্স:
proxy - সমস্যার কোড:
protocol.http.BadFormData - ত্রুটি সংক্রান্ত নীতি:
extractvariables/EV-ExtractFormParams
- স্ট্যাটাস কোড:
- সমস্যার সোর্স
proxyহলে, সমস্যার কোডprotocol.http.BadFormDataহলে এবং সমস্যার নীতি খালি না হলে, এর অর্থ হল সমস্যার নীতিতে উল্লেখ করা নির্দিষ্ট নীতি ফর্ম ডেটা (ফর্ম প্যারামিটার) রিড বা এক্সট্র্যাক্ট করার সময় সমস্যা হয়েছে, যেটিতে এমন ক্যারেক্টার আছে যা ব্যবহার করার অনুমতি নেই। - এই উদাহরণে, X-Apigee-fault-policy হল
extractvariables/EV- ExtractFormParams,, যার অর্থ হল, EV-ExtractFormParams নামের ExtractVariables নীতি ফর্ম প্যারামিটার রিড বা এক্সট্র্যাক্ট করার সময় কাজ করেনি।
ট্রেস টুল
Trace টুল ব্যবহার করে সমস্যার ডায়াগনসিস করতে:
- ট্রেস সেশন চালু করুন
এবং এগুলির মধ্যে একটি:
500 Internal Server Errorসমস্যার জন্য অপেক্ষা করুন অথবা- আপনি যদি সমস্যাটি আবার তৈরি করতে পারেন, তাহলে সমস্যাটি আবার তৈরি করতে API কল করুন
500 Internal Server Error
সব FlowInfo দেখুন বিকল্প চালু আছে কিনা দেখুন:
- কাজ না করা অনুরোধগুলির মধ্যে একটি বেছে নিন এবং ট্রেস পরীক্ষা করুন।
- ট্রেসের বিভিন্ন ফেজ নেভিগেট করুন এবং কোথায় সমস্যা হয়েছে তা খুঁজে বের করুন।
আপনি সাধারণত নিচে দেখানো নীতিগুলির মধ্যে কোনও একটিতে সমস্যা দেখতে পাবেন:
উপরের নমুনা ট্রেসে, মনে রাখবেন যে
EV-ExtractFormParamsনামের ExtractVariables নীতিতে সমস্যা হয়েছে।যে নির্দিষ্ট নীতি কাজ করেনি, তার পরে সমস্যা নামের ফ্লোতে নেভিগেট করুন:
- ট্রেস থেকে নিম্নলিখিত ভ্যালুগুলি নোট করুন:
সমস্যা:
Bad Form Dataরাজ্য:
PROXY_REQ_FLOWerror.class:
com.apigee.rest.framework.BadRequestExceptionBad Form Dataভ্যালু থেকে বোঝা যায় যে ফর্মের প্যারামিটারে এমন কিছু অক্ষর আছে যা ব্যবহার করার অনুমতি নেই।- state-এর ভ্যালু
PROXY_REQ_FLOW,থেকে বোঝা যায় যে API প্রক্সির অনুরোধ ফ্লোতে সমস্যা হয়েছে।
- ট্রেসে AX (রেকর্ড করা অ্যানালিটিক্স ডেটা) ফেজে নেভিগেট করুন এবং সেটিতে ক্লিক করুন।
নিচের দিকে স্ক্রল করে ফেজের বিবরণ - সমস্যার হেডার বিভাগে যান এবং নিচে দেখানো 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.BadFormDataX-Apigee-fault-source policyX-Apigee-fault-policy extractvariables/EV-ExtractFormParams- এই উদাহরণে, X-Apigee-fault-policy হল
extractvariables/EV- ExtractFormParams,যার অর্থ হল ExtractVariables নীতিটিEV-ExtractFormParamsফর্মের প্যারামিটার রিড বা এক্সট্র্যাক্ট করার সময় কাজ করেনি।
NGINX
NGINX অ্যাক্সেস লগ ব্যবহার করে সমস্যার ডায়াগনসিস করতে:
- আপনি প্রাইভেট ক্লাউড ব্যবহারকারী হলে, HTTP
500 Internal Server Errorসম্পর্কে মূল তথ্য নির্ধারণ করতে আপনি NGINX অ্যাক্সেস লগ ব্যবহার করতে পারবেন। NGINX অ্যাক্সেস লগ চেক করুন:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log- নির্দিষ্ট সময়সীমার মধ্যে (যদি সমস্যাটি
অতীতে হয়ে থাকে)
500error with error codeprotocol.http.BadFormDataআছে কিনা তা সার্চ করে দেখুন অথবা এখনও কোনও অনুরোধ ব্যর্থ হচ্ছে কিনা500দেখুন। আপনি যদি 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.BadFormDataX-Apigee-fault-source policyX-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,যার অর্থ হল ExtractVariables নামের নীতিEV-ExtractFormParamsফর্মের প্যারামিটার পড়ার সময় ব্যর্থ হয়েছে।
কারণ: অনুরোধে থাকা ফর্ম প্যারামিটারে এমন অক্ষর আছে যা অনুমোদিত নয়
ডায়াগনসিস
500 Internal Server Error-এর জন্য সমস্যার কোড, সমস্যার সোর্স ও সমস্যার নীতি নির্ধারণ করুন। API মনিটরিং, ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে এটি করা যায়। এই বিষয়ে সাধারণ ডায়াগনসিস ধাপ বিভাগে ব্যাখ্যা করা হয়েছে।- ফল্ট কোড
protocol.http.BadFormDataহলে, ফল্ট সোর্সেproxyবাpolicyভ্যালু থাকলে এবং ফল্ট পলিসি খালি না থাকলে , তাহলে এটি ইঙ্গিত করে যে ফর্ম ডেটা (ফর্ম প্যারামিটার) পড়ার বা এক্সট্র্যাক্ট করার সময় ফল্ট পলিসিতে উল্লেখ করা নীতি কাজ করেনি। - ত্রুটি সংক্রান্ত নীতিতে উল্লিখিত নীতি পরীক্ষা করে দেখুন এবং নিম্নলিখিত
তথ্য নির্ধারণ করুন:
- সোর্স: নীতিটি অনুরোধ বা উত্তর থেকে ডেটা পড়ছে বা এক্সট্র্যাক্ট করছে কিনা তা নির্ধারণ করুন।
- ফর্ম প্যারামিটার: নীতিতে
পড়া হচ্ছে এমন নির্দিষ্ট ফর্ম প্যারামিটার নির্ধারণ করুন।
নমুনা #১
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বা দুটিই পাস করেছে এবং সেগুলিতে এমন অক্ষর আছে যা ব্যবহার করার অনুমতি নেই।
ধাপ ৩-এ চিহ্নিত করা ফর্ম প্যারামিটারে অনুমতি নেই এমন কোনও অক্ষর ব্যবহার করা হয়েছে কিনা তা নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে চেক করুন:
ট্রেস টুল
Trace টুল ব্যবহার করে যাচাই করতে:
- আপনি যদি সাধারণ ডায়াগনসিস ধাপ-এ ব্যাখ্যা করা ব্যর্থ অনুরোধের জন্য ট্রেস ক্যাপচার করে থাকেন, তাহলে ব্যর্থ অনুরোধগুলির মধ্যে একটি বেছে নিন।
- আপনি যদি নির্ধারণ করে থাকেন যে, কোনও অক্ষর
যুক্ত ফর্ম প্যারামিটার যা ব্যবহার করার জন্য অনুমতি নেই তা উপরে উল্লিখিত
ধাপ ৩-এ HTTP অনুরোধের অংশ, তাহলে
- ক্লায়েন্টের থেকে অনুরোধ পাওয়া গেছে ফেজে নেভিগেট করুন।
নিচের দিকে স্ক্রল করে ফেজ সংক্রান্ত বিবরণ বিভাগে যান এবং কন্টেন্টের অনুরোধ পর্যালোচনা করুন।
- উপরের উদাহরণে, মনে রাখবেন যে ফর্ম প্যারামিটার
passwordএ শতাংশের চিহ্ন (%) আছে। - যেহেতু শতাংশের চিহ্ন (
%) এছাড়াও শতাংশ এনকোডিং বিশেষ অক্ষরগুলির জন্য ব্যবহার করা হয়, তাই এটি ফর্ম ডেটাতে যেমন আছে তেমন ব্যবহার করা যাবে না। - তাই, Apigee Edge
500 Internal Server Errorসহ উত্তর দেয় এবং এরর কোড হলprotocol.http.BadFormData.
আসল অনুরোধ
আসল অনুরোধ ব্যবহার করে যাচাই করতে:
- টার্গেট সার্ভারে করা আসল অনুরোধের অ্যাক্সেস আপনার কাছে না থাকলে, সমাধান বিভাগে যান।
- Apigee Edge-এ করা আসল অনুরোধের অ্যাক্সেস আপনার কাছে থাকলে, নিচে দেওয়া
ধাপগুলি অনুসরণ করুন:
- ফর্ম ডেটার কন্টেন্ট পর্যালোচনা করে দেখুন যে এতে এমন কোনও অক্ষর আছে কিনা যা
ব্যবহার করার অনুমতি নেই, যেমন শতাংশের চিহ্ন (
%) অথবা শতাংশের চিহ্ন (%) যার পরে ভুল হেক্সাডেসিমেল অক্ষর আছে।নমুনা #১
অনুরোধের নমুনা #১: অনুরোধের অংশ হিসেবে ফর্ম ডেটা
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শতাংশ চিহ্ন (%) আছে, যা ফর্ম ডেটাতে যেমন আছে তেমন পাস করা উচিত নয়।
- ফর্ম ডেটার কন্টেন্ট পর্যালোচনা করে দেখুন যে এতে এমন কোনও অক্ষর আছে কিনা যা
ব্যবহার করার অনুমতি নেই, যেমন শতাংশের চিহ্ন (
- উপরের দুটি উদাহরণে, Apigee Edge-এ পাঠানো HTTP অনুরোধের অংশ হিসেবে ফর্ম ডেটাতে এমন অক্ষর রয়েছে যা ব্যবহার করার অনুমতি নেই।
- তাই, Apigee Edge
500 Internal Server Errorএর সাথেprotocol.http.BadFormDataএরর কোড সহ উত্তর দেয়।
রেজোলিউশন
- ক্লায়েন্টের পাঠানো HTTP অনুরোধের অংশ হিসেবে ফর্ম ডেটা বা প্যারামিটারের কী ও ভ্যালু, দু'টিতেই কোনও বিশেষ অক্ষর থাকলে তা যেন সবসময় ফর্ম ডেটা - application/x-www-form-urlencoded-এ দেওয়া ব্যাখ্যা অনুযায়ী এনকোড করা হয়, তা নিশ্চিত করুন।
- উপরে আলোচনা করা উদাহরণগুলির ক্ষেত্রে, আপনি নিম্নলিখিত উপায়ে সমস্যা সমাধান করতে পারবেন:
নমুনা #১
নমুনা #১: অনুরোধের অংশ হিসেবে ফর্ম ডেটা পাস করা হয়েছে:
নির্দিষ্ট অক্ষরের 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