使用apigee消费REST服务

时间:2013-07-30 00:47:04

标签: rest apex-code apigee

我是使用REST服务的新手,我正在使用apigee.com测试我的REST服务的GET和POST请求。

我的问题是,如何通过传递参数来创建新记录来测试我的POST请求?

我可以成功运行我的GET请求,然后返回带有请求记录的JSON响应。

当我尝试发布请求时,我收到错误:

"message": "Content-Type header specified in HTTP request is not supported: application/x-www-form-urlencoded; charset=UTF-8",
"errorCode": "UNSUPPORTED_MEDIA_TYPE"

这是我的班级方法:

@HttpPost
global static Merchandise createMerchandise(String name, String description, Double price, Integer totalInventory) {
    System.Debug('POST /merchandise/*');

    Merchandise__c merchandise = new Merchandise__c();
    merchandise.Name = name;
    merchandise.Description__c = description;
    merchandise.Price__c = price;
    merchandise.Total_Inventory__c = totalInventory;

    insert merchandise;

    Merchandise merch = castToMerchandise(merchandise);

    return merch;
}

如何传递URL中的参数以及如何使用agigee控制台指定正确的内容类型来测试我的服务?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您要继续使用它来将有效负载发送到网址,您应该查看您正在接受Rest服务接受的格式并添加“x-www-form-urlencoded”。

您可以在Apigee控制台的Headers选项卡下指定Content-Type,您只需要查看服务器接受的Content-Type。

要在网址中传递参数,您只需将?附加到网址的末尾,然后输入变量名称和值。这些通常称为queryStrings 像这样:

www.example.com?name=Dman100&Rep=104。

此示例将传递给变量name和Rep。在URL中传递变量时,必须注意html url对变量及其值进行编码。

对于帖子,您可以在有效负载/正文中发送内容。无论采用何种格式。