2016-07-11 8 views
-1

Эй, ребята я пытаюсь получить данные с удаленного сервера и возвращение в alertbox с использованием реакции роднойКак извлекать данные из API в реагирующих родной

Вот мой код для извлечения

_onPressButtonPOST: function(){ 
    fetch("http://www.example.com/endpoint", { 
    method: "POST", 
    body: JSON.stringify({ 
     key: "value", 
    }) 
    }) 
    .then((response) => response.json()) 
    .then((responseData) => { 
    Alert.alert(
       "POST Response", 
       "Response Body -> " + JSON.stringify(responseData.body) 
     ) 
    }) 
    .done(); 
    }, 

Вот что я хочу получить от своих конечных точек.

{ 
    "_shards": { 
    "total": 1, 
    "successful": 1, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 1, 
    "max_score": 1, 
    "hits": [ 
     { 
     "_index": "service", 
     "_type": "service", 
     "_id": "ac8c5edd-1aad-406f-b476-012c6e940c1a", 
     "_score": 1, 
     "_source": { 
      "service_owner_id": "2", 
      "service_name": "miamia", 
      "service_email": "[email protected]", 
      "service_contact_name": "mukesh", 
      "service_landline_number": "12345", 
      "service_mobile_number": "1234567890", 
      "service_address": "vdvml", 
      "service_listingType": 1, 
      "service_avg_rating": 3.5, 
      "sarvice_ratingcount": 10, 
      "service_serviceType": 1, 
      "service_working_hour": [ 
      "" 
      ], 
      "service_subcat_ids": "2,3", 
      "service_description": "hi I am mukesh kumar ", 
      "service_id": "ac8c5edd-1aad-406f-b476-012c6e940c1a", 
      "service_logo_url": "", 
      "service_gallery_url": "", 
      "service_location": { 
      "lat": 19.34, 
      "lon": 72.845 
      }, 
      "service_subcategory": "CAT GER ", 
      "service_review": [] 
     } 
     } 
    ] 
    }, 
    "took": 2, 
    "timed_out": false 
} 

Но в предупреждающем ящике показывается неопределенное, что может быть проблемой? может ли кто-нибудь помочь в этом? Спасибо заранее.

+0

Try каротаж responseData.body и проверить, если он имеет значение –

+0

я попытался с помощью console.log (JSON.stringify (response.body)), но не смогли найти ничего – atif

+0

я имел в виду сделать это .then ((responseData) => console.log (responseData.body), а затем зарегистрируйте свой журнал инструментов dev –

ответ

0

Эй, ребята, я узнал ошибку и успешно поглотил API благодаря https://www.thepolyglotdeveloper.com/2015/09/make-http-requests-in-ios-with-react-native/ я просто заменил responseData.body с responseData как не было тела, включенных в моей стороне сервера код, чтобы он не возвращался неопределенными

Здесь мой пример кода

.then((response) => response.json()) 
    .then((responseData) => { 
    Alert.alert(
       "POST Response", 
       "Response Body -> " + JSON.stringify(responseData) 
     ) 
    }) 
    .done(); 

Любые сомнения и запросы приветствуются.

0

Как правило, другая причина заключается в том, что в коде конечной точки PHP они пытаются получить параметры, отправленные с использованием $ _POST, $ _GET или $ _REQUEST.

В этом случае вместо Json используйте значение FormData как значение body в вашей операции выборки.

Пример

 var FormDataToPost = new FormData(); 
     FormDataToPost.append('userId', 12); 

     fetch(url, { 
       method: 'POST', 
       headers: { 
        'Accept': 'application/json', 
        'Content-Type': 'application/json' 
        }, 
       body: FormDataToPost 
      }) 
      .then((response) => response.json()) 
      .then((responseData) => { do something }) 
      .catch((error) => { 
        alert(error); 
      }) 
      .done();