繁体   English   中英

如何使用 Rest Assured 在同一 API 主体上发送 String[] 和 String 值?

[英]How to send String[] and String values on the same API's body using Rest Assured?

我正在尝试使用 Rest-Assured 和 Java 为 POST API 创建测试自动化。

此 API 具有以下主体作为应用程序/JSON:

{
    "billing_address": {
        "region": "Sao Paulo",
        "region_id": 123,
        "country_id": "BR",
        "street": ["Av Paulista"],
        "postcode": "10577",
        "city": "SAO PAULO",
        "telephone": "555-555-1111",
        "company": "Test test",
        "firstname": "Fernando",
        "lastname": "Alves",
        "document": "0123444064"
     }
}

在我的代码中,我开发了以下方法来发送此值和请求:

public void criarPF (String srtAmbiente, String srtAPI, String srtToken, String srtRegion, String srtRegionID, String srtCountryID, String srtStreet,
                    String srtPostcode, String srtCity, String srtTelephone, String srtCompany, String srtFirstname, String srtLastname, String srtDocument) {
                    
                    String uriBase = srtAmbiente;
                    String Api = srtAPI;
                    
                    Map<String, String> addressContent = new HashMap<String,String>();
                    addressContent.put("region", srtRegion);
                    addressContent.put("region_id", srtRegionID);
                    addressContent.put("country_id", srtCountryID);
                    addressContent.put("street", srtStreet);
                    addressContent.put("postcode", srtPostcode);
                    addressContent.put("city", srtCity);
                    addressContent.put("telephone", srtTelephone);
                    addressContent.put("company", srtCompany);
                    addressContent.put("firstname", srtFirstname);
                    addressContent.put("lastname", srtLastname);
                    addressContent.put("document", srtDocument);
               
                
                    Map<String, Object> postContent = new HashMap<String,Object>();
                    postContent.put("billing_address", addressContent);

                    
                    request = RestAssured.given().contentType(ContentType.JSON)
                            .header("Authorization", "Bearer "+srtToken).with().body(postContent);

我收到一个错误信使,“street”不是一个字符串,它是一个字符串 []。
那么,如何在同一个 API 主体中发送 String 和 String[] 值?

您正在将street设置为字符串值。 只需像这样更改它:

Map<String, Object> addressContent = new HashMap<>();
addressContent.put("region", srtRegion);
addressContent.put("region_id", srtRegionID);
addressContent.put("country_id", srtCountryID);

// Here wrap strStreet in a List
addressContent.put("street", Arrays.asList(srtStreet));

addressContent.put("postcode", srtPostcode);
addressContent.put("city", srtCity);
addressContent.put("telephone", srtTelephone);
addressContent.put("company", srtCompany);
addressContent.put("firstname", srtFirstname);
addressContent.put("lastname", srtLastname);
addressContent.put("document", srtDocument);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM