簡體   English   中英

CURL POST 到 JIRA

[英]CURL to POST to JIRA

我在 Windows 機器的 powershell 中使用 curl 命令。 我試圖在我本地安裝的 JIRA 中創建一個問題。 我嘗試跟隨,但它引發了我的錯誤。 有人可以讓我知道我缺少什么以及如何解決它嗎?

PS C:\Users\raji> **curl -D- -u raji:raji -X POST --data $parse.json -H    
"Content-Type: application/json" http://localhost:8080/rest/api/2/issue**

*curl: (6) Could not resolve host: Content-Type
HTTP/1.1 415 Unsupported Media Type

Server: Apache-Coyote/1.1
X-AREQUESTID: 770x749x1
X-ASEN: SEN-L8183526
Set-Cookie: JSESSIONID=D0B4391C94413FDDB1291C419F3E1360; Path=/; HttpOnly
X-Seraph-LoginReason: OK
Set-Cookie: atlassian.xsrf.token=B3EL-GHY4-P1TP-IMD0|d3d735e0a6566f8a97f99c96e80042551def3192|lin; Path=/
X-ASESSIONID: 1v4terf
X-AUSERNAME: raji
X-Content-Type-Options: nosniff
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Sun, 10 Jul 2016 07:20:36 GMT
*

當我嘗試以下時,我收到此錯誤:

PS C:\Users\raji> **curl -D- -u raji:raji -X POST --data @parse.json -H 
"Content-Type: application/json" http://localhost:8080/rest/api/2/issue**

*At line:1 char:38
+ curl -D- -u raji:raji -X POST --data @parse.json -H "Content-Type: ap ...
+                                      ~~~~~~
The splatting operator '@' cannot be used to reference variables in an expression. '@parse' can be used only as an argument to a command. To reference variables in an expression use '$parse'.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : SplattingNotPermitted*

因此我在文件名中嘗試了$ instaed 的@

"parse.json"文件有以下內容:

{
    "fields": {
       "project":
       { 
          "key": "Demo"
       },
       "summary": "REST ye merry gentlemen",
       "description": "Creating of an issue using project keys and issue type names using the REST API",
       "issuetype": {
          "name": "Bug"
       }
   }
}

由於這是 Windows 機器,我還嘗試在 parse.json 文件中使用斜杠 (/)(在幾篇文章中看到 / 將刪除錯誤)但這也沒有幫助。 請問有人可以讓我知道如何解決這個問題嗎?

在第一種情況下

curl -D- -u raji:raji -X POST --data $parse.json -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue

$parse被 powershell 解釋為變量, $parse.json作為變量$parse屬性json ,它不存在,所以執行的命令將是

curl -D- -u raji:raji -X POST --data -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue

data 是-H ,內容類型標頭被解釋為要訪問的 url。

在第二種情況下,powershell 中的@被解釋為splat operator ,如果您想要文字@ (由 curl 而不是由 powershell 解釋),只需引用字符串:

curl -D- -u raji:raji -X POST --data "@parse.json" -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue

現在它應該使用文件parse.json的內容作為數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM