使用apigee使用REST服务

使用apigee使用REST服务,rest,apex-code,apigee,Rest,Apex Code,Apigee,我是使用REST服务的新手,我正在使用apigee.com测试REST服务的GET和POST请求 我的问题是,如何通过传递参数来创建新记录来测试POST请求 我可以成功地运行GET请求,并返回带有请求记录的JSON响应 当我尝试我的post请求时,我得到一个错误: "message": "Content-Type header specified in HTTP request is not supported: application/x-www-form-urlencoded; charse

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

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

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

当我尝试我的post请求时,我得到一个错误:

"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控制台指定正确的内容类型来测试我的服务


感谢您的帮助。

如果要继续使用Rest服务向URL发送有效负载,您应该查看Rest服务接受的格式,并添加“x-www-form-urlencoded”

在Apigee控制台的Headers选项卡下指定内容类型,只需查看服务器接受的内容类型

要在url中传递参数,只需将
附加到url的末尾,并放置变量名称和值。这些通常被称为 像这样:

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

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


对于POST,您发送有效负载/正文中的内容。以任何必要的格式。

我似乎无法为我的REST服务在apigee控制台的标题、模板或正文中添加任何参数/值。如果使用GET请求并运行:
https://c16.salesforce.com/services/apexrest/Account/001f0000007qcD5
我得到了成功的回复。但是,如果我尝试运行POST请求,我无法在正文、标题或模板中输入任何参数?您是否使用apigee的通用api控制台?我可以输入正文、标题等。您尝试调用什么函数?我尝试调用POST来测试我的REST服务,以验证它是否创建了帐户记录。我已经成功测试了GET请求,它返回了正确的记录。但是,当我尝试测试文章时,我不能在标题、模板和正文中输入任何参数,我认为我应该可以这样做:
{“name”:“test”}
等等。这可能是我的用户错误,因为我是REST新手,也使用apigee控制台。是的,我理解GET部分。Get不需要POST做的一些事情,所以它很简单。既然这是你自己的REST服务,你为什么不使用呢?这将允许您指定要将请求发送到的位置以及请求的详细信息。