2017-06-03 158 views
0

請糾正我,如果我錯了定義contet類型:內容類型

Content-Type: application/json; charset=utf-8 
{"my_id":"975","my_a_id":"Test66","param":"4","amount":"66"} 

Content-Type: application/x-www-form-urlencoded 
my_id=123&my_a_id=Test66&param=4&amount=66 

什麼其他內容類型可能是什麼?

什麼樣的內容類型支持RESTLetNetSuite服務?

我發佈到網絡服務:

POST https://some.netsuite.uri?deploy=1 HTTP/1.1 
Authorization: NLAuth nlauth_account=3624292_SB3, [email protected], nlauth_signature=Pass987654, nlauth_role=3 
Accept: application/json 
Content-Type: application/json; charset=utf-8 
Host: rest.eu1.netsuite.com 
Cookie: JSESSIONID=**************************************; lastUser=1234567_SB9_1282_3; NS_ROUTING_VERSION=LAGGING; NS_VER=2017.1.0 
Content-Length: 69 
Expect: 100-continue 

{"my_id":"975","my_a_id":"Test66","param":"4","amount":"66"} 

是好,在URL我有類似x-www-form-urlencoded - ?deploy=1

https://some.netsuite.uri?deploy=1 

和數據是json風格:

{"my_id":"975","my_a_id":"Test66","param":"4","amount":"66"} 

UPD

我得到了答案,我想應該返回JSON數據:

HTTP/1.1 200 OK 
Date: Sat, 03 Jun 2017 06:21:46 GMT 
Server: Apache 
Cache-Control: No-Cache 
Pragma: No-Cache 
Content-Length: 41 
Expires: 0 
Edge-Control: no-store 
X-N-OperationId: 486c2d20-099d-446b-9788-4816db59a1fd 
Set-Cookie: .......................; path=/ 
NS_RTIMER_COMPOSITE: 1688996695:706172746E6572733030312E70726F642E6475622E6E65746C65646765722E636F6D:80 
P3P: CP="CAO PSAa OUR BUS PUR" 
Vary: User-Agent 
Content-Type: application/json; charset=utf-8 

[email protected] 

但這個答案不是看起來像JSON?

+0

您是否閱讀過該REST API的文檔?它應該全部記錄在案 –

+0

我沒有當前服務的文檔。我只是簡單的示例調用GET調用。我決定在發佈數據時發送GET並不好,並決定找到POST的方法 – vico

+1

@ vico你不應該與我們分享你的用戶憑據:) –

回答

0

一個問題可能是您的URL。您是否嘗試過改變

https://some.netsuite.uri&deploy=1 

https://some.netsuite.uri?deploy=1 

編輯:

此外,您的Accept頭說,你正在尋找應用程序/ JSON響應,是什麼樣的服務器返回?

+0

你是對的 - 我做錯了,放置'&'而不是' ?隱藏真實地址時。 – vico

+0

我已經更新了我的問題正文與我從服務器獲得的答案。 – vico

0

可以在NS幫助中心找到支持的內容類型:

RESTlets支持JSON和純文本內容類型的輸入和輸出 。對於每個RESTlet,輸出內容類型與輸入內容類型 相同。

您必須在HTTP Content-Type標頭中設置內容類型。您可以 使用下列值來指定輸入/輸出內容類型 一個的Restlet:

應用/ JSON

text/plain的

如果指定JSON或文本之外的內容類型, 415錯誤是 返回以下消息:

無效的內容類型。您只能在RESTlet中使用application/json或text/plain 。

Documentation

此外,在由shazmodan提到的URL的問題,腳本ID丟失。下面是一個有效的Restlet URL的一個例子:

https://rest.netsuite.com/app/site/hosting/restlet.nl?deploy=1&script=1 

您可以在URL傳遞其他參數:

https://rest.netsuite.com/app/site/hosting/restlet.nl?deploy=1&script=1&my_id=123&my_a_id=Test66&param=4&amount=66 

或請求體中,如果您使用POSTPUT方法,但它需要成爲有效的JSON。但內容類型必須始終爲application/jsontext/plain