এইচটিটিপিতে "406- গ্রহণযোগ্য নয় এমন প্রতিক্রিয়া" কী?


185

আমার রুবি অন রেলস অ্যাপ্লিকেশনটিতে আমি বেস 64 format ফর্ম্যাটে পোষ্টম্যান রিস্ট ক্লায়েন্টের মাধ্যমে একটি চিত্র আপলোড করার চেষ্টা করেছি । আমি যখন ছবিটি পোস্ট করি তখন আমি একটি 406 গ্রহণযোগ্য নয় এমন প্রতিক্রিয়া পাচ্ছি । আমি যখন আমার ডাটাবেস পরীক্ষা করেছি, ছবিটি সেখানে উপস্থিত ছিল এবং সফলভাবে সংরক্ষণ করা হয়েছিল।

এই ত্রুটির কারণ কী, আমার শিরোনামে আমাকে নির্দিষ্ট করার দরকার আছে কি?

আমার অনুরোধ:

ইউআরএল --- http://localhost:3000/exercises.json

শিরোলেখ:

Content-Type  -  application/json

মূল তথ্য:

{
    "exercise": {
        "subbodypart_ids": [
            "1",
            "2"
        ],
        "name": "Exercise14"
    },
    "image_file_name": "Pressurebar Above.jpg",
    "image":"******base64 Format*******"
}

উত্তর:


263

আপনার অপারেশন ব্যর্থ হয়নি।

আপনার ব্যাকএন্ড পরিষেবা বলছে যে প্রতিক্রিয়া টাইপটি এটি প্রত্যাবর্তন করছে তা আপনার ক্লায়েন্টের অনুরোধে স্বীকার করুন HTTP শিরোনামে সরবরাহ করা হয়নি ।

তথ্যসূত্র: http://en.wikedia.org/wiki/List_of_HTTP_header_fields

  1. পরিষেবা দ্বারা প্রত্যাবর্তিত প্রতিক্রিয়া (সামগ্রীর ধরণ) সন্ধান করুন।
  2. আপনার অনুরোধে এই (সামগ্রীর ধরণ) সরবরাহ করুন শিরোনাম গ্রহণ করুন।

http://en.wikedia.org/wiki/HTTP_status_code -> 406


5
হাই, যখন আপনি "পরিষেবাটিতে ফিরে আসা প্রতিক্রিয়া (বিষয়বস্তুর প্রকার) সন্ধান করবেন"? আমি এটি কিভাবে পরীক্ষা করতে পারি? আমি একটি পিএইচপি ফাইল থেকে জসনকে ফিরিয়ে দিচ্ছি তাই আমি অনুমান করছি যে বিষয়বস্তুর ধরণটি জেসন হবে (অথবা আমাকে পিএইচপি ফাইলের শিরোনামগুলিতে এটি উল্লেখ করার দরকার আছে?) এছাড়াও আমি এই অনুরোধটি আমার অনুরোধ শিরোনামে এতটা 'গ্রহণ করুন' হিসাবে সরবরাহ করেছি: 'আবেদন / JSON'। এটা কি সঠিক হবে? ধন্যবাদ
সারাহ

41

406 গ্রহণযোগ্য নয় অনুরোধ দ্বারা চিহ্নিত সংস্থানটি কেবলমাত্র প্রতিক্রিয়া সত্তা উত্পন্ন করতে সক্ষম যার অনুরোধে প্রেরিত গ্রহণযোগ্য শিরোনাম অনুসারে গ্রহণযোগ্য নয় এমন সামগ্রী বৈশিষ্ট্য রয়েছে।

406 ঘটে যখন সার্ভার অনুরোধে উল্লিখিত গ্রহণযোগ্য-শিরোনামের সাথে প্রতিক্রিয়া জানাতে পারে না। আপনার ক্ষেত্রে মনে হচ্ছে প্রতিক্রিয়াটির জন্য অ্যাপ্লিকেশন / জসন সার্ভারের কাছে গ্রহণযোগ্য নাও হতে পারে।


7
আপনার শিরোনামটি মুছে ফেলা হয়নি, আপনাকে অন্যরকম সরবরাহ করতে হবে যা সার্ভারের কাছে গ্রহণযোগ্য। en.wikipedia.org/wiki/...
আশুতোষ রায়না

7

আপনি উল্লেখ করেছেন যে আপনি ব্যান্ড-এ ব্যান্ড হিসাবে রুবেল অন রেল ব্যবহার করছেন। আপনি প্রাসঙ্গিক পদ্ধতির জন্য কোড পোস্ট করেন নি, তবে আমার অনুমান যে এটি দেখতে এরকম কিছু দেখাচ্ছে:

def create
  post = Post.create params[:post]
  respond_to do |format|
    format.json { render :json => post }
  end
end

এটিকে পরিবর্তন করুন:

def create
  post = Post.create params[:post])
  render :json => post
end

এবং এটি আপনার সমস্যার সমাধান করবে। এটি আমার জন্য কাজ করেছে :)


2

ব্রাউজারে অবৈধ কুকিগুলি সংরক্ষণ বা রেফারেন্স করা হলে আপনি 406 টি প্রতিক্রিয়াও পেতে পারেন - উদাহরণস্বরূপ, যখন স্থানীয়ভাবে দেব মোডে একটি রেল সার্ভার চালাচ্ছেন।

যদি আপনি একই বন্দরে দুটি পৃথক প্রকল্প চালানোর ঘটনা ঘটে থাকে তবে ব্রাউজারটি কোনও আলাদা লোকাল হোস্ট সেশন থেকে একটি কুকিকে রেফারেন্স করতে পারে।

আমার সাথে এটি ঘটেছে ... এক মিনিটের জন্য আমাকে ট্রিপ করে ফেলেছে। ব্রাউজারে দেখছেন> বিকাশকারী মোড> নেটওয়ার্ক এটি দেখিয়েছে।


2

"কখনও কখনও" এর অর্থ এই হতে পারে যে সার্ভারটির অভ্যন্তরীণ ত্রুটি ছিল এবং এটি একটি ত্রুটি বার্তা (যেমন: জেএসএন পে-লোড সহ 500) দিয়ে প্রতিক্রিয়া জানাতে চেয়েছিল তবে অনুরোধ শিরোনাম যেহেতু এটি জেএসএন গ্রহণ করেছে তা না বলে, পরিবর্তে এটি 406 ফেরত দেয়। চিত্রে যান. (এই ক্ষেত্রে: বসন্ত বুট ওয়েব অ্যাপ্লিকেশন)।

কোন ক্ষেত্রে, আপনার অপারেশন ব্যর্থ হয়েছিল। কিন্তু ব্যর্থতার বার্তাটি অন্য একজনকে অস্পষ্ট করে রেখেছিল।


1

আমার ক্ষেত্রে, আমি যোগ করেছি:

Content-Type: application/x-www-form-urlencoded

আমার সমস্যা সম্পূর্ণ সমাধান করুন।


1
const request = require('request');

const headers = {
    'Accept': '*/*',
    'User-Agent': 'request',
};

const options = {
    url: "https://example.com/users/6",
    headers:  headers
};

request.get(options, (error, response, body) => {
    console.log(response.body);
});

0

আপনি যদি 'অনুরোধ.js' ব্যবহার করে থাকেন তবে আপনি নিম্নলিখিতগুলি ব্যবহার করতে পারেন:

var options = {
  url: 'localhost',
  method: 'GET',
  headers:{
    Accept: '*/*'
  }
}

request(options, function (error, response, body) {
  ...
})

0

। নেট-কোরে একটি এপিআইয়ের ক্ষেত্রে, এপিআই XML- এর সাথে কাজ করতে প্রস্তুত (ডিফল্টরূপে JSON- এর সাথে প্রতিক্রিয়া হিসাবে সেট করা হয়েছে), তাই আমি আমার কন্ট্রোলারে এই টিকাটি যুক্ত করি:

[Produces("application/xml")]
public class MyController : ControllerBase {...}

আমাকে পথে রাখার জন্য ধন্যবাদ!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.