zoukankan      html  css  js  c++  java
  • cURL POST command line on WINDOWS RESTful service

    My problem:

    Running windows 7 and using the executable command line tool to curl my localhost server api for POST data was returning me an error that seems to be really common.

    The request was being sent properly with the exception that the data was not reaching the server as it should causing my REST service to insert data with null values.

    What seems to be causing the error: imagine something like this

    1. curl -i -X POST -H 'Content-Type: application/json' -d '{"data1": "data goes here", "data2": "data2 goes here"}' http:localhost/path/to/api

    Result of the returning data

    curl: (6) Could not resolve host: application; No data record of requested type
    curl: (6) Could not resolve host: data goes here,; No data record of requested type
    curl: (6) Could not resolve host: data2; No data record of requested type
    curl: (3) [globbing] unmatched close brace/bracket at pos 16
    

    After some searching i figured out that problem couldn't be the sintax used for the request since it works on UNIX shells.

    Are you possibly using Windows? That so looks like a completely broken shell that doesn't properly deal with single-quotes vs double-quotes. I just tried that command line and it worked fine on my linux box. http://curl.haxx.se/mail/archive-2011-03/0066.html

    I tried to work around with those " escaping it " but it still didn't work

    2.

    curl -i -X POST -H 'Content-Type: application/json' -d '{"data1": "data goes here", "data2": "data2 goes here"}' http: //localhost/path/to/api

    3.

    curl -i -X POST -H 'Content-Type: application/json' -d '{"data1": "data goes here", "data2": "data2 goes here"}' http: //localhost/path/to/api

    So i gave up. Windows seems to messing up with the JSON object sent on POST

    shareimprove this question
     
        
    Please do not add [solved] to your question title. If you've figured out the answer to your question, you should post it as an answer. – Cody Gray Aug 6 '12 at 23:20
    1  
    Thank you for the warning @CodyGray. I'll correct my Post. – Lothre1 Aug 6 '12 at 23:35

    5 Answers

    I ran into the same issue on my win7 x64 laptop and was able to get it working using the curl release that is labeled Win64 - Generic w SSL by using the very similar command line format:

    C:Projectscurl-7.23.1-win64-ssl-sspi>curl -H "Content-Type: application/json" -X POST http://localhost/someapi -d "{"Name":"Test Value"}"
    

    Which only differs from your 2nd escape version by using double-quotes around the escaped ones and the header parameter value. Definitely prefer the linux shell syntax more.

  • 相关阅读:
    丛铭俣 160809324 (作业5)
    丛铭俣 160809324 (作业4)
    丛铭俣 160809324 (作业3)
    丛铭俣 160809324 (作业2)
    系统设计的一些原则
    计算输入框的字符长度
    DateTime.ToLongDateString
    邮箱发送验证码
    .net core中加入日志
    .net core 将类库项目转移到一个新建的文件夹下面
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/5548444.html
Copyright © 2011-2022 走看看