通过JavaScript或jQuery将值通过Curl请求发布到Golang中。

huangapple go评论125阅读模式
英文:

Posting values to golang via curl request in javascript or jquery

问题

这是我的来自PHP的curl post请求。它完美地工作。

  1. extract($postFieldsArr);
  2. $json_id = json_encode($postFieldsArr);
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_URL, 'https://localhost:9000/GoogleSimpleReports');
  5. curl_setopt($ch, CURLOPT_PORT, 9000);
  6. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  7. curl_setopt($ch, CURLOPT_POSTFIELDS, $json_id);
  8. curl_setopt($ch, CURLOPT_SSLVERSION, 1);
  9. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  11. curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  12. 'Content-Type: application/json',
  13. 'Content-Length: ' . strlen($json_id))
  14. );
  15. $result = curl_exec($ch);

类似地,我正在尝试从JavaScript向Golang执行curl post请求,这是正确的语法吗?如何设置setRequestHeaderAuthorization

  1. $.ajax({
  2. url: 'https://localhost:9000/GoogleSimpleReports',
  3. beforeSend: function(xhr) {
  4. xhr.setRequestHeader("Authorization", "Bearer 6QXNMEMFHNY4FJ5ELNFMP5KRW52WFXN5");
  5. },
  6. success: function(data){
  7. alert(data);
  8. //处理JSON数据等
  9. }
  10. });
英文:

This is my curl post from php.This works perfectly

  1. extract($postFieldsArr);
  2. $json_id = json_encode($postFieldsArr);
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_URL, 'https://localhost:9000/GoogleSimpleReports');
  5. curl_setopt($ch, CURLOPT_PORT, 9000);
  6. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  7. curl_setopt($ch, CURLOPT_POSTFIELDS, $json_id);
  8. curl_setopt($ch, CURLOPT_SSLVERSION, 1);
  9. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  11. curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  12. 'Content-Type: application/json',
  13. 'Content-Length: ' . strlen($json_id))
  14. );
  15. $result = curl_exec($ch);

Similarly i am trying to perform a curl post from javascript to golang, is this the correct syntax ? How do i set this setRequestHeader Authorization ?

  1. $.ajax({
  2. url: 'https://localhost:9000/GoogleSimpleReports',
  3. beforeSend: function(xhr) {
  4. xhr.setRequestHeader("Authorization", "Bearer 6QXNMEMFHNY4FJ5ELNFMP5KRW52WFXN5")
  5. }, success: function(data){
  6. alert(data);
  7. //process the JSON data etc
  8. }
  9. })

答案1

得分: 1

要设置请求头,您需要使用Write函数,该函数提供一个接受keyvalue作为参数的Get()函数。

  1. func (h Header) Set(key, value string)

要设置请求头,您应该使用以下代码:

  1. writer.Header().Set("Content-Type", "application/json")

其中,writer的类型是http.ResponseWriter

英文:

To set the request header you have to use the Write function which provide a Get() function accepting a key and a value as parameter.

  1. func (h Header) Set(key, value string)

To setup the request header you should use:

  1. writer.Header().Set("Content-Type", "application/json")

where writer is of type http.ResponseWriter.

huangapple
  • 本文由 发表于 2016年2月10日 19:59:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/35314655.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定