কার্লের মাধ্যমে একটি পোস্ট অনুরোধ প্রেরণে ডাবল উদ্ধৃতি সহ সমস্যা রয়েছে


0

সুতরাং, গিস্টগুলিতে (গিথুব) একটি পোষ্ট অনুরোধ প্রেরণের জন্য, আপনি https: //gist.github.com/caspyi তে যেমন দেখেন তেমন কিছু করতে পারেন ...

curl --user "user" -X POST --data '{"description":"Created via API","public":"true","files":{"file1.txt":{"content":"Demo"}}' https://api.github.com/gists

তবে, উপরের উদাহরণে, ফাইলের নাম এবং ফাইলের বিষয়বস্তু কঠোর কোডড যা অংশ file1.txt":{"content":"Demo"}..

আমি উপরের অংশটি আমার ভেরিয়েবলের সাথে প্রতিস্থাপন করছি $file":{"content":"$content"}তবে ভেরিয়েবলটি আরম্ভ করব , জসন অনুরোধটি অবশ্যই ডাবল উদ্ধৃতিতে আবদ্ধ থাকতে হবে, যা আমি হিসাবে করেছি

curl --user "user" -X POST --data "{\"description\":\"Created via API\",\"public\":\"true\",\"files\":{\"$file\":{\"content\":\"$content\"}}' https://api.github.com/gists

তবে এটি কাজ করে না, আমি জসন ত্রুটি পেয়েছি।

{
  "message": "Problems parsing JSON",
  "documentation_url": "https://developer.github.com/v3/gists/#create-a-gist"
}

এমনকি, যদি আমি পালানো সমস্ত ডাবল-কোট \'একক উদ্ধৃতি দ্বারা প্রতিস্থাপন করি ।

এই জসন অনুরোধের মধ্যে কীভাবে কোনও চলক অন্তর্ভুক্ত করা যায় তা কি কেউ জানেন? বিটিডব্লিউ: আমি সমস্ত শিরোনাম যেমন ব্যবহার করেছি

 -H "Content-Type: application/json; charset=UTF-8" 

এবং অনুরোধটি বৈধ করার জন্য অনেকগুলি সংমিশ্রণ রয়েছে তবে কোনও ফলসই হয়নি

হালনাগাদ.

পুরো বিষয়বস্তুর মতো দেখতে এটিই।

function gist_controller(){
    content=$(cat $1)
    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    read -p "enter your password - " pass 
    public="false"
    gist_content=$(cat $1)
    curl --user "samserayo"  -H "Content-Type: application/json; charset=UTF-8" -X POST -d  "{ 'description': 'Created via API', 'public': 'true', 'files':{ ' '$1 ':{ 'content': '$gist_content'}}" https://api.github.com/gists
}

এটি প্রায় অবশ্যই সুপার ব্যবহারকারীকে আরও ভাল জিজ্ঞাসা করা হয়েছে , কারণ আমি সার্ভার বা নেটওয়ার্ক প্রশাসনের সাথে কোনও প্রকৃত সংযোগ দেখতে পাচ্ছি না। আপনি যদি প্রশ্নটি সেখানে স্থানান্তরিত করতে চান তবে আপনি এটি পতাকাঙ্কিত করতে এবং মাইগ্রেশনের অনুরোধ করতে পারেন।
একটি সিভিএন

@ মাইকেলKjörling ধন্যবাদ, এটি পতাকাঙ্কিত। যদিও, আমি মনে করি সার্ভার প্রশাসনের সাথে কার্ল অনুরোধটির অবশ্যই কিছু করার আছে।
সমায়ো

উদ্ধৃতি এবং পলায়নের সমস্যাগুলি সমস্ত প্রোগ্রামিং সমস্যার মধ্যে সবচেয়ে প্রাথমিক (সিনট্যাক্স ত্রুটি), প্রশ্নটি এসওতে স্থানান্তরিত হওয়া উচিত।
আলেকজান্ডার 21

উত্তর:


0

আপনি value ফাইল বা $ সামগ্রীর জন্য কোন মান সেট করেছেন তা আপনি দেখান না। তারা উভয় কি প্রসারিত? এটি সম্ভবত এক, বা অন্য, বা উভয়তে এমন অক্ষর রয়েছে যা জেএসএন পার্সার পছন্দ করে না। বেশিরভাগ ক্ষেত্রে, চলক সম্প্রসারণ মানটির ভিতরে থাকা কিছুকে কার্লের মাধ্যমে JSON পার্সারে জমা দেওয়ার আগে আরও পালাতে বা এনকোড করা দরকার।

আপনি কি পরিবেশের পরিবর্তনগুলি রফতানি করেছেন?

চেষ্টা করুন:

প্রতিধ্বনি "$ ফাইল $ সামগ্রী";

আপনি যেমন আশা করছেন তেমন সেগুলি উভয়ই সেট হয়ে গেছে তা নিশ্চিত করতে।


দুঃখিত, সামগ্রী আপডেট হয়েছে।
সমায়ো

0

আপনি কোন শেলটি ব্যবহার করছেন তা আপনি নির্দিষ্ট করেন নি, তবে ডাবল-কোটসের মধ্যে থাকা কোনও কিছুই শেল ফাইলের নাম বিস্তারের বিষয়। বিশেষত, most most এর বেশিরভাগ শাঁসের অর্থ রয়েছে। এ কারণেই আপনি যে উদাহরণটি উদ্ধৃত করেছেন সেটি পুরো জিনিসটি মোড়ানোর জন্য একক উদ্ধৃতি ব্যবহার করেছিল।

শেল পালানো কৌতুকময় এবং কখনও কখনও আপনি যা চান তা পাওয়া অসম্ভব বলে মনে হয়। সত্যিই, এর মতো ক্ষেত্রে আমি কার্ল কল করতে পাইথন স্ক্রিপ্ট লিখব, যেখানে আমি জানি শেলটি আমাকে "সহায়তা" করছে না।


দুঃখিত, সামগ্রী আপডেট হয়েছে। আমি ব্যাশ শেল ব্যবহার করছি।
সমায়ো

-1

আপনাকে পুরো স্ট্রিংটি ডাবল কোটের ভিতরে রাখতে হবে "। এবং আপনার স্ট্রিংয়ের ভিতরে উদ্ধৃতিগুলি এড়াতে হবে (এগুলিকে অন্য ধরণের উদ্ধৃতিতে রূপান্তর করবেন না!)।

এর পরিবর্তে:

"description 'বিবরণ': 'এপিআই এর মাধ্যমে তৈরি', 'সর্বজনীন': 'সত্য', 'ফাইল': {'' $ 1 ': content' সামগ্রী ':' ist গিস্ট_কন্টেন্ট '}}"

তুমি চাও:

"{\" বিবরণ \ ": API" এপিআই via "এর মাধ্যমে তৈরি, \" সর্বজনীন \ ": true" সত্য \ ", files" ফাইল \ ": {\" $ 1 \ ": {\" সামগ্রী \ ": \" $ gist_content \ "}}}"

আপনার সম্ভবত পরীক্ষা করা উচিত echoএবং নিশ্চিত হওয়া উচিত যে স্ট্রিংটি ঠিক সঠিক।


নাহ, পাগল হওয়ার আগে আমি এটিই প্রথম করলাম। এটি এর মতো কাজ করে না। আমি উপরে উল্লিখিত হিসাবে আমি সবসময় একটি ত্রুটি পাই"message": "Problems parsing JSON",
সামায়ো

@ সমায়ো আপনি প্রেরিত সঠিক বার্তাটি পেস্ট করুন। হয় এটি আইনী JSON বা এটি নয় isn't (প্রত্যেকটির {মিল রয়েছে কিনা তা নিশ্চিত করুন }))
ডেভিড শোয়ার্জ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.