2017-06-03 154 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