পোস্ট অনুরোধ

আপনার ব্রাউজারে একটি URL বা একটি <img> ট্যাগ হিসাবে আপনার চার্ট নির্দিষ্ট করাকে একটি GET অনুরোধ বলা হয়। একটি GET অনুরোধ করা সহজ, কিন্তু GET URL গুলি 2K অক্ষরের মধ্যে সীমাবদ্ধ৷ যদি আপনার কাছে এর চেয়ে বেশি ডেটা থাকে?

ভাগ্যক্রমে, চার্ট API 16K দীর্ঘ পর্যন্ত চার্ট অনুরোধের জন্য HTTP POST সমর্থন করে। ট্রেড-অফ হল POST ব্যবহারের অতিরিক্ত জটিলতা।

এখানে সবচেয়ে প্রাথমিক ধরণের POST অনুরোধের একটি উদাহরণ রয়েছে: একটি <form> উপাদান ব্যবহার করে:

এই চার্টটি আসলে একটি <iframe> এ হোস্ট করা একটি পৃষ্ঠা। এখানে ফর্ম কোড আছে:

<form action='https://chart.googleapis.com/chart' method='POST'>
  <input type="hidden" name="cht" value="lc"  />
  <input type="hidden" name="chtt" value="This is | my chart"  />
  <input type='hidden' name='chs' value='600x200' />
  <input type="hidden" name="chxt" value="x,y" />
  <input type='hidden' name='chd' value='t:40,20,50,20,100'/>
  <input type="submit"  />
</form>

একটি বৈধ POST অনুরোধের প্রতিক্রিয়া হল একটি PNG চার্ট, একটি GET অনুরোধের প্রতিক্রিয়ার মতোই৷

POST ব্যবহার করার জন্য অনেকগুলি উপায় রয়েছে এবং সেগুলির সবকটির জন্য পৃষ্ঠা কোডে বা পৃষ্ঠা হোস্ট করা সার্ভারে অতিরিক্ত কোডিং প্রয়োজন৷ POST ব্যবহার করার জন্য, আপনি সাধারণত প্রতিটি চার্টের জন্য একটি পৃথক পৃষ্ঠা তৈরি করবেন এবং <iframe> বা <img> ট্যাগ হিসাবে নীচে দেখানো হিসাবে ব্যবহার করে আপনার মূল পৃষ্ঠায় এই পৃষ্ঠাগুলি এম্বেড বা লিঙ্ক করবেন।

এখানে জাভাস্ক্রিপ্ট এবং পিএইচপি উভয়ের সাথে POST ব্যবহারের উদাহরণ রয়েছে।

একটি পোস্ট অনুরোধের জন্য জাভাস্ক্রিপ্ট ব্যবহার করে

একটি JavaScript POST অনুরোধ করার সবচেয়ে সহজ উপায় হল এমন একটি পৃষ্ঠা তৈরি করা যা <input> উপাদানগুলিতে চার্ট ডেটা সহ একটি ফর্ম হোস্ট করে এবং পৃষ্ঠাটি তার onLoad() হ্যান্ডলারে অনুরোধটি পোস্ট করে, এবং পৃষ্ঠাটি চার্ট দ্বারা প্রতিস্থাপিত হবে পিএনজি। যে পৃষ্ঠাটি এই চার্টটি হোস্ট করে সেখানে একটি <iframe> ব্যবহার করে এই পৃষ্ঠাটি অন্তর্ভুক্ত করা উচিত। এখানে চার্ট পৃষ্ঠার কোড আছে:

post_chart.html

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script type='application/javascript'>
    // Send the POST when the page is loaded,
    // which will replace this whole page with the retrieved chart.
    function loadGraph() {
      var frm = document.getElementById('post_form');
      if (frm) {
       frm.submit();
      }
    }
  </script>
  </head>
  <body onload="loadGraph()">
    <form action='https://chart.googleapis.com/chart' method='POST' id='post_form'>
      <input type='hidden' name='cht' value='lc'/>
      <input type='hidden' name='chtt' value='This is | my chart'/>
      <input type='hidden' name='chs' value='300x200'/>
      <input type='hidden' name='chxt' value='x'/>
      <input type='hidden' name='chd' value='t:40,20,50,20,100'/>
      <input type='submit'/>
    </form>
  </body>
</html>

আপনি যদি একটি <form> উপাদান ব্যবহার করেন, তাহলে আপনার স্ট্রিংগুলিকে URL-এনকোড করার প্রয়োজন নেই (যদিও আপনাকে এখনও বিশেষ অক্ষর ব্যবহার করতে হবে, যেমন | চার্ট শিরোনামে একটি ক্যারেজ রিটার্ন তৈরি করতে)।

এই চার্টটি আপনার হোস্ট পৃষ্ঠায় একটি <iframe> ব্যবহার করে অন্য পৃষ্ঠায় লোড করা যেতে পারে, যেমন:

another_page.html

<iframe src="post_chart.html" width="300" height="200"></iframe>

একটি পোস্ট অনুরোধের জন্য পিএইচপি ব্যবহার করে

বেশিরভাগ সার্ভার-সাইড ভাষা স্পষ্ট পোস্ট অনুরোধ সমর্থন করে। এখানে পিএইচপি ব্যবহার করে একটি পোস্ট অনুরোধ করার একটি উদাহরণ। এই উদাহরণটি একটি পৃষ্ঠা প্রদর্শন করে যা 150 র্যান্ডম মান সহ একটি লাইন চার্ট তৈরি করে। এটি নিজে ব্যবহার করার জন্য, আপনি আপনার নিজস্ব মান অন্তর্ভুক্ত করতে $chart অ্যারে কাস্টমাইজ করবেন।

chartserver-image.php

<?php
  // Create some random text-encoded data for a line chart.
  header('content-type: image/png');
  $url = 'https://chart.googleapis.com/chart';
  $chd = 't:';
  for ($i = 0; $i < 150; ++$i) {
    $data = rand(0, 100000);
    $chd .= $data . ',';
  }
  $chd = substr($chd, 0, -1);

  // Add data, chart type, chart size, and scale to params.
  $chart = array(
    'cht' => 'lc',
    'chs' => '600x200',
    'chds' => '0,100000',
    'chd' => $chd);

  // Send the request, and print out the returned bytes.
  $context = stream_context_create(
    array('http' => array(
      'method' => 'POST',
      'content' => http_build_query($chart))));
  fpassthru(fopen($url, 'r', false, $context));
?>

এই চার্টটি এম্বেড করা জাভাস্ক্রিপ্ট উদাহরণের চেয়ে সহজ, কারণ আপনি এখানে দেখানো হিসাবে একটি <img> ট্যাগ দিয়ে আপনার POST পৃষ্ঠায় নির্দেশ করতে পারেন:

another_page.html

<img width='600' height='200' src='chartserver-image.php'>