Yêu cầu Spring JSON nhận được 406 (không được chấp nhận)


85

đây là javascript của tôi:

    function getWeather() {
        $.getJSON('getTemperature/' + $('.data option:selected').val(), null, function(data) {
            alert('Success');                               
        });
    }

đây là bộ điều khiển của tôi:

@RequestMapping(value="/getTemperature/{id}", headers="Accept=*/*", method = RequestMethod.GET)
@ResponseBody
public Weather getTemparature(@PathVariable("id") Integer id){
    Weather weather = weatherService.getCurrentWeather(id);
        return weather;
}

spring-servlet.xml

<context:annotation-config />
<tx:annotation-driven />

Gặp lỗi này:

GET http://localhost:8080/web/getTemperature/2 406 (Not Acceptable)

Tiêu đề:

Tiêu đề phản hồi

Server  Apache-Coyote/1.1
Content-Type    text/html;charset=utf-8
Content-Length  1070
Date    Sun, 18 Sep 2011 17:00:35 GMT

Yêu cầu tiêu đề

Host    localhost:8080
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept  application/json, text/javascript, */*; q=0.01
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive
X-Requested-With    XMLHttpRequest
Referer http://localhost:8080/web/weather
Cookie  JSESSIONID=7D27FAC18050ED84B58DAFB0A51CB7E4

Lưu ý thú vị:

Tôi gặp lỗi 406, nhưng truy vấn ngủ đông hoạt động trong khi đó. Đây là những gì nhật ký tomcat nói, mỗi khi tôi thay đổi lựa chọn trong hộp kéo thả:

 select weather0_.ID as ID0_0_, weather0_.CITY_ID as CITY2_0_0_, weather0_.DATE as DATE0_0_, weather0_.TEMP as TEMP0_0_ from WEATHER weather0_ where weather0_.ID=?

Vấn đề có thể là gì? Có hai câu hỏi tương tự trong SO trước đây, tôi đã thử tất cả các gợi ý được chấp nhận ở đó, nhưng chúng không hoạt động, tôi đoán ...

Bất kỳ đề xuất? Hãy đặt câu hỏi...

Câu trả lời:


107

406 Không thể chấp nhận

Tài nguyên được xác định bởi yêu cầu chỉ có khả năng tạo ra các thực thể phản hồi có đặc điểm nội dung không được chấp nhận theo tiêu đề chấp nhận được gửi trong yêu cầu.

Vì vậy, tiêu đề chấp nhận yêu cầu của bạn là application / json và bộ điều khiển của bạn không thể trả lại tiêu đề đó. Điều này xảy ra khi không thể tìm thấy HTTPMessageConverter chính xác để đáp ứng giá trị trả về có chú thích @ResponseBody. HTTPMessageConverter được đăng ký tự động khi bạn sử dụng <mvc:annotation-driven>thư viện bên 3-d nhất định trong classpath.

Hoặc bạn không có thư viện Jackson chính xác trong classpath của mình hoặc bạn chưa sử dụng <mvc:annotation-driven>chỉ thị.

Tôi đã sao chép thành công kịch bản của bạn và nó hoạt động tốt khi sử dụng hai thư viện này và không có headers="Accept=*/*"chỉ thị.

  • jackson-core-asl-1.7.4.jar
  • jackson-mapper-asl-1.7.4.jar

Không, đó không phải là vấn đề, hãy kiểm tra câu trả lời của tôi.
Jaanus

Nếu việc định cấu hình HttpMessageConverters theo cách thủ công giải quyết được sự cố của bạn, thì việc sử dụng mvc: annotation-driven sẽ thực hiện tương tự như nó tự động định cấu hình trình chuyển đổi và HandlerAdapters (HA). Lưu ý rằng nếu bạn cấu hình bất kỳ HA nào một cách rõ ràng, nó sẽ hủy tất cả các mặc định khác.
Villu Sepman,

Hmm, cái gì vậy mvc? Tôi đã sử dụng <tx:annotation-driven />và tx làxmlns:tx="http://www.springframework.org/schema/tx"
Jaanus

1
Bạn có một cái gì đó như: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">và bình spring-web-3.0.x và spring-webmvc-3.0.x?
Villu Sepman,

1
Ah, tôi không có schemalocation đó ở đó..nhưng cảm ơn, điều này đã giúp tôi. Tôi nghĩ rằng đó tx:annotation-drivenlà giống như mvc:annotation-drivehoặc smthin.
Jaanus

74

Tôi đã gặp vấn đề tương tự, với Spring 4.1.1 mới nhất trở đi, bạn cần thêm các lọ sau vào pom.xml.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.4.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.1.1</version>
</dependency>

cũng đảm bảo rằng bạn có bình sau:

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.13</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

406 Spring MVC Json, không được chấp nhận theo yêu cầu "chấp nhận" tiêu đề


Câu trả lời này là phiên bản nhận biết của Maven của câu trả lời hàng đầu, và nó hoạt động hoàn hảo! Ngoại lệ Maven có thể rõ ràng hơn về những gì đang thực sự diễn ra.
Cotta

4
Bạn có thể cho biết điều này được ghi ở đâu trên tài liệu Chính thức của Springs không? Làm thế nào ai đó có thể biết rằng đây là vấn đề?
Adelin

Bạn chỉ cần chỉ định các phụ thuộc cho jackson-databind và jackson-mapper-asl, hai phần còn lại là các phụ thuộc bắc cầu và sẽ được giải quyết.
anre

1
Điều này chỉ làm việc cho tôi sau khi thêm hai phụ thuộc thứ hai. Cảm ơn.
DocWatson

Bạn chắc chắn không cần cả hai. Mùa xuân sẽ thêm MappingJacksonHttpMessageConvertercho Jackson 1 và MappingJackson2HttpMessageConvertercho Jackson 2. Mỗi cái đều đủ tốt để tuần tự hóa / giải mã JSON. Bạn chỉ cần một cái (đi với Jackson 2 vì nó có nhiều tính năng hơn).
Sotirios Delimanolis

16

Có một trường hợp khác mà trạng thái này sẽ được trả về: nếu người lập bản đồ Jackson không thể tìm ra cách tuần tự hóa bean của bạn. Ví dụ: nếu bạn có hai phương thức truy cập cho cùng một thuộc tính boolean, isFoo()getFoo().

Điều đang xảy ra là Spring's MappingJackson2HttpMessageConverter gọi Jackson's StdSerializerProvider để xem liệu nó có thể chuyển đổi đối tượng của bạn hay không. Ở cuối chuỗi cuộc gọi, StdSerializerProvider._createAndCacheUntypedSerializerném một JsonMappingExceptionkèm theo một tin nhắn. Tuy nhiên, ngoại lệ này bị nuốt bởi StdSerializerProvider._createAndCacheUntypedSerializer, điều này nói với Spring rằng nó không thể chuyển đổi đối tượng. Sau khi hết trình chuyển đổi, Spring báo cáo rằng nó không được cung cấp Accepttiêu đề mà nó có thể sử dụng, điều này tất nhiên là không có thật khi bạn cung cấp nó */*.

Có một lỗi cho hành vi này, nhưng nó đã bị đóng là "không thể tái tạo": phương thức được gọi không tuyên bố rằng nó có thể ném, vì vậy việc nuốt các ngoại lệ rõ ràng là một giải pháp thích hợp (vâng, đó là một lời châm biếm). Thật không may, Jackson không có bất kỳ ghi nhật ký nào ... và có rất nhiều bình luận trong cơ sở mã mong muốn điều đó làm được, vì vậy tôi nghi ngờ đây không phải là gotcha ẩn duy nhất.


Cảm ơn bạn rất nhiều! Tôi là người mới tham gia Spring MVC và đang gặp khó khăn trong việc tìm cách trả lại JSON. Mọi người đều đề cập đến việc thiếu chú thích @ResponseBody và phụ thuộc Jackson là nguyên nhân gây ra lỗi 406. Trong trường hợp của tôi, hóa ra tôi chỉ thiếu phương thức truy cập cho trường công khai thuộc đối tượng mà tôi muốn trả về dưới dạng JSON.
Anthony Jack

Cảm ơn @kdgregory! Tôi quên thêm getter / setter cho một trường. Thêm chúng đã khắc phục sự cố này.
Rubens Mariuzzo

16

Tôi đã gặp vấn đề tương tự, phương thức bộ điều khiển của tôi thực thi nhưng phản hồi là Lỗi 406. Tôi gỡ lỗi AbstractMessageConverterMethodProcessor#writeWithMessageConvertersvà nhận thấy rằng phương thức ContentNegotiationManager#resolveMediaTypesluôn trả về phương thức text/htmlkhông được hỗ trợ bởi MappingJacksonHttpMessageConverter. Vấn đề là các org.springframework.web.accept.ServletPathExtensionContentNegotiationStrategyhoạt động sớm hơn org.springframework.web.accept.HeaderContentNegotiationStrategyvà phần mở rộng yêu cầu của tôi /get-clients.htmllà nguyên nhân gây ra sự cố của tôi với Lỗi 406. Tôi vừa thay đổi url yêu cầu thành /get-clients.


Xin chào, tôi có cùng một vấn đề và mẹo của bạn về việc thay đổi phần mở rộng của yêu cầu đã giải quyết được vấn đề của tôi. Cảm ơn rất nhiều vì đã chia sẻ giải pháp của bạn !!
jherranzm

Trong trường hợp của tôi, đó là id đường dẫn phần còn lại có phần mở rộng trong đó (trong thử nghiệm) gây ra lỗi 406 vì lý do tương tự, trong khi bộ điều khiển bình thường hoạt động (ngay cả khi bạn sử dụng phần mở rộng trong id đường dẫn phần còn lại).
Jur_

9

Đảm bảo rằng 2 jar' sau có trong đường dẫn lớp.

Nếu bất kỳ một hoặc cả hai bị thiếu thì lỗi này sẽ đến.

jackson-core-asl-1.9.X.jar jackson-mapper-asl-1.9.X.jar

6

Cuối cùng đã tìm thấy câu trả lời từ đây:

Lập bản đồ các yêu cầu ajax yên tĩnh đến mùa xuân

Tôi trích dẫn:

@ RequestBody / @ ResponseBody chú thích không sử dụng trình phân giải chế độ xem thông thường, chúng sử dụng HttpMessageConverters của riêng chúng. Để sử dụng các chú thích này, bạn nên định cấu hình các bộ chuyển đổi này trong AnnotationMethodHandlerAdapter, như được mô tả trong tài liệu tham khảo (có thể bạn cần MappingJacksonHttpMessageConverter).


3

Kiểm tra <mvc:annotation-driven />trong dispatcherservlet.xml, nếu không thêm nó. Và thêm

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.13</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

những phụ thuộc này trong pom.xml của bạn


2
<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-base</artifactId>
    <version>2.6.3</version>
</dependency>

2
Mặc dù mã này có thể trả lời câu hỏi, nhưng việc cung cấp thêm ngữ cảnh về cách và / hoặc lý do tại sao nó giải quyết vấn đề sẽ cải thiện giá trị lâu dài của câu trả lời.
Francesco Menzani

2

Có lẽ không ai cuộn xuống điều này, nhưng không có giải pháp nào ở trên khắc phục được nó cho tôi, nhưng thực hiện tất cả các phương pháp getter của tôi publicđã làm được.

Tôi đã để chế độ hiển thị getter của mình ở chế độ gói riêng tư; Jackson quyết định rằng nó không thể tìm thấy chúng và cho nổ tung. ( @JsonAutoDetect(getterVisibility=NON_PRIVATE)Chỉ sử dụng một phần đã sửa nó.


Đó chính xác là vấn đề của tôi. Tôi thay đổi người thiết lập của mình từ công khai sang được bảo vệ và Jackson đã ngừng hoạt động.
JuanMiguel

Vấn đề tương tự ở đây, tôi đang sử dụng AbstractMap.SimpleImmutableEntrysau đó bị hạ cấp xuống AbstractMap.SimpleEntry, vẫn không có xúc xắc vì nó không có bộ định vị cho khóa. Đi pojo về điều này.
Robert Bain

2

Đảm bảo rằng đối tượng đã gửi (Thời tiết trong trường hợp này) chứa getter / setter


1

Trong bộ điều khiển, không nên chú thích nội dung phản hồi trên kiểu trả về chứ không phải phương thức, như vậy:

@RequestMapping(value="/getTemperature/{id}", headers="Accept=*/*", method = RequestMethod.GET)
public @ResponseBody Weather getTemparature(@PathVariable("id") Integer id){
    Weather weather = weatherService.getCurrentWeather(id);
        return weather;
}

Tôi cũng sẽ sử dụng hàm thô jquery.ajax và đảm bảo rằng contentType và dataType đang được đặt chính xác.

Một lưu ý khác, tôi thấy việc xử lý lò xo của json khá có vấn đề. Nó dễ dàng hơn khi tôi tự mình làm tất cả bằng cách sử dụng chuỗi và GSON.


Vị trí của @ResponseBodysẽ không quan trọng ... Tôi sẽ xem xét GSON ... nhưng vẫn muốn JSON này hoạt động nếu có thể.
Jaanus

1

Như @atott đã đề cập .

Nếu bạn đã thêm phiên bản mới nhất của Jackson trong pom.xml của bạn, và với mùa xuân 4.0 hoặc mới hơn, sử dụng @ResponseBodyphương pháp hành động của bạn và @RequestMappingcấu hình với produces="application/json;charset=utf-8", tuy nhiên, bạn vẫn có 406 (Không được chấp nhận), tôi đoán bạn cần phải cố gắng trong việc này cấu hình ngữ cảnh MVC DispatcherServlet của bạn:

<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" />

<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    <property name="favorPathExtension" value="false" />
</bean>

Đó là cách cuối cùng tôi đã giải quyết vấn đề của mình.


1

Mùa xuân 4.3.10: Tôi đã sử dụng các cài đặt bên dưới để giải quyết vấn đề.

Bước 1: Thêm các phụ thuộc bên dưới

    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.6.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.6.7</version>
</dependency>
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.13</version>
</dependency>
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

Bước 2: Thêm phần bên dưới vào cấu hình ngữ cảnh MVC DispatcherServlet của bạn:

<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>

<bean id="contentNegotiationManager"
    class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    <property name="favorPathExtension" value="false"/>
    <property name="favorParameter" value="true"/>
    <property name="ignoreAcceptHeader" value="false" />
</bean>

Kể từ mùa xuân 3.2, theo cấu hình mặc định thì favPathExtension được đặt là true, vì điều này nếu tiểu yêu cầu có bất kỳ phần mở rộng thích hợp nào như .htmmùa xuân sẽ ưu tiên cho phần mở rộng. Trong bước 2, tôi đã thêm bean contentNegotiationManager để ghi đè điều này.


1

Tôi đang gặp sự cố tương tự vì thiếu chú thích @EnableWebMvc. (Tất cả các cấu hình mùa xuân của tôi đều dựa trên chú thích, XML tương đương sẽ là mvc: annotation-driven)


0

đảm bảo rằng bạn có phiên bản jackson chính xác trong classpath của bạn


Tôi đã thêm jackson-all-1.8.5.jar vào WEB-INF/libthư mục của mình , nhưng vẫn gặp sự cố như vậy: /
Jaanus 18/09/11

0

Kiểm tra như @joyfun đã làm để tìm đúng phiên bản jackson nhưng cũng kiểm tra tiêu đề của chúng tôi ... Ứng dụng khách có thể chấp nhận / có thể không truyền đi ... sử dụng firebug hoặc tương đương để kiểm tra xem yêu cầu nhận của bạn đang thực sự gửi đi. Tôi nghĩ rằng thuộc tính tiêu đề của chú thích / có thể / đang kiểm tra các ký tự mặc dù tôi không chắc 100%.


Tôi đã thêm các tiêu đề từ firebug vào bài đăng chính. Họ có ổn không?
Jaanus

0

Ngoài ra, các vấn đề rõ ràng khác mà tôi gặp phải một vấn đề khác mà tôi không thể khắc phục bất kể bao gồm tất cả các JAR, phụ thuộc và chú thích có thể có trong Spring servlet. Cuối cùng, tôi phát hiện ra rằng tôi có phần mở rộng tệp sai, điều đó có nghĩa là tôi có hai servlet riêng biệt đang chạy trong cùng một vùng chứa và tôi cần ánh xạ đến các phần mở rộng tệp khác nhau trong đó một phần mở rộng là ".do" và phần còn lại được sử dụng cho đăng ký được đặt tên ngẫu nhiên ". phụ ”. Tất cả đều tốt nhưng SUB là phần mở rộng tệp hợp lệ thường được sử dụng cho các tệp phụ đề phim và do đó Tomcat đã ghi đè tiêu đề và trả về một cái gì đó như "text / x-dvd.sub ..." vì vậy tất cả đều ổn nhưng ứng dụng đang mong đợi JSON nhưng nhận được Phụ đề do đó tất cả những gì tôi phải làm là thay đổi ánh xạ trong web.xmltệp của mình mà tôi đã thêm:

<mime-mapping>
    <extension>sub</extension>
    <mime-type>application/json</mime-type>
</mime-mapping>

0

Tôi đã gặp cùng một vấn đề đáng tiếc là không có giải pháp ở đây giải quyết được vấn đề của tôi vì vấn đề của tôi là một thứ gì đó ở một lớp khác.

Trước tiên, tôi đã kiểm tra xem tất cả các phụ thuộc có đúng như đề xuất của @bekur hay không, sau đó tôi kiểm tra yêu cầu / phản hồi đi từ máy khách đến máy chủ, tất cả các tiêu đề đã được đặt đúng bởi Jquery. Sau đó, tôi kiểm tra RequestMappingHandlerAdapter MessageConvertersvà tất cả 7 trong số họ đã ở đúng vị trí, tôi thực sự bắt đầu ghét Spring! Sau đó, tôi đã cập nhật từ Spring 4.0.6.RELEASEthành 4.2.0.RELEASETôi đã nhận được một phản hồi khác chứ không phải ở trên. Nó đãRequest processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type

Đây là phương pháp điều khiển của tôi

  @RequestMapping(value = "/upload", method = RequestMethod.POST,produces = "application/json")
    public ResponseEntity<UploadPictureResult> pictureUpload(FirewalledRequest initialRequest) {

        DefaultMultipartHttpServletRequest request = (DefaultMultipartHttpServletRequest) initialRequest.getRequest();

        try {
            Iterator<String> iterator = request.getFileNames();

            while (iterator.hasNext()) {
                MultipartFile file = request.getFile(iterator.next());
                session.save(toImage(file));
            }
        } catch (Exception e) {
            return new ResponseEntity<UploadPictureResult>(new UploadPictureResult(),HttpStatus.INTERNAL_SERVER_ERROR);
        }
        return new ResponseEntity<UploadPictureResult>(new UploadPictureResult(), HttpStatus.OK);
    } 




    public class UploadPictureResult extends WebResponse{

    private List<Image> images;

    public void setImages(List<Image> images) {
        this.images = images;
    }
}






    public class WebResponse implements Serializable {


    protected String message;

    public WebResponse() {
    }

    public WebResponse(String message) {

        this.message = message;
    }


    public void setMessage(String message) {
        this.message = message;
    }
}

Giải pháp là làm cho UploadPictureResult không mở rộng WebResponse

Vì một số lý do mà mùa xuân không thể xác định cách chuyển đổi UploadPictureReslt khi nó mở rộng WebResponse


0
<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.0</version>
    </dependency>

tôi không sử dụng xác thực ssl và jackson-databind này chứa jackson-core.jar và jackson-databind.jar, sau đó thay đổi nội dung RequestMapping như thế này:

@RequestMapping(value = "/id/{number}", produces = "application/json; charset=UTF-8", method = RequestMethod.GET)
public @ResponseBody Customer findCustomer(@PathVariable int number){
    Customer result = customerService.findById(number);
    return result;
}

chú ý: nếu sản phẩm của bạn không phải là loại "ứng dụng / json" và tôi đã không nhận thấy điều này và gặp lỗi 406, hãy trợ giúp điều này có thể giúp bạn.


0

kiểm tra chủ đề này. Spring mvc restcontroller return json string p / s: bạn nên thêm cấu hình ánh xạ jack son vào lớp WebMvcConfig của mình

@Override protected void configureMessageConverters( List<HttpMessageConverter<?>> converters) { // put the jackson converter to the front of the list so that application/json content-type strings will be treated as JSON converters.add(new MappingJackson2HttpMessageConverter()); // and probably needs a string converter too for text/plain content-type strings to be properly handled converters.add(new StringHttpMessageConverter()); }


0

Đây là câu trả lời cập nhật cho springVersion = 5.0.3.RELEASE.

Những câu trả lời trên sẽ chỉ hoạt động với phiên bản springVersion <4.1 cũ hơn . đối với mùa xuân mới nhất, bạn phải thêm các phụ thuộc sau vào tệp gradle:

compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: fasterxmljackson
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: fasterxmljackson

fasterxmljackson=2.9.4

Tôi hy vọng điều này sẽ hữu ích cho những người sử dụng phiên bản mùa xuân mới nhất.


-3

Bạn có thể xóa phần tử tiêu đề trong @RequestMapping và thử ..

Giống


@RequestMapping(value="/getTemperature/{id}", method = RequestMethod.GET)

Tôi đoán rằng mùa xuân thực hiện một 'kiểm tra chứa' thay vì đối sánh chính xác cho các tiêu đề chấp nhận. Tuy nhiên, vẫn đáng để thử xóa phần tử tiêu đề và kiểm tra.


Tôi đã gỡ bỏ, nhưng vẫn bị lỗi. Btw khi tôi nhìn nhật ký tomcat, sau đó truy vấn với điều này đã được weatherService.getCurrentWeather(id);"kích hoạt" ... vì vậy một cái gì đó hoạt động ... có khả năng 406 xuất hiện và Hibernate SQL select hoạt động cùng một lúc không?
Jaanus

Hãy thử cái này nó sẽ hoạt động. Thêm chú thích này trên controller @RequestMapping (method = RequestMethod.GET, headers = {"Accept = text / xml, application / json"})
sats
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.