1

ログインするだけで、その後返されたaccess_tokenを使用してデータを取得する必要があるReact Nativeアプリがあります。 localHost:50968で実行されているローカルにホストされている.NET APIに接続してエラーをデバッグしようとしています。これは返されますandroid ReactネイティブアプリをlocalHost .NET APIに接続できません

TypeError: Network request failed 

私はすでにmanifest.xmlでインターネットのアクセス許可を有効にしています。 ほとんどのグーグルではlocalHost:50968を自分のIPアドレスに変更する必要があると言われています。これはこれまでのところ192.168.0.2:50968/tokenを使用して最も近いところでしたが、以下はレスポンスです。

{ type: 'default', 
status: 400, 
ok: false, 
statusText: undefined, 
headers: { map: { 'content-length': [ '334' 
     ], 
connection: [ 'close' 
     ], 
date: [ 'Thu, 
      10 Aug201703: 19: 14 GMT' 
     ], 
server: [ 'Microsoft-HTTPAPI/2.0' 
     ], 
'content-type': [ 'text/html; charset=us-ascii' 
     ] 
    } 
}, url: 'http: //192.168.0.2:50968/token', 
_bodyInit: 
'<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">\r\n 
<HTML> 

<HEAD> 
    <TITLE>Bad Request</TITLE>\r\n 
    <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"> 
</HEAD>\r\n 

<BODY> 
    <h2>Bad Request - Invalid Hostname</h2>\r\n 
    <hr> 
    <p>HTTP Error 400. The request hostname is invalid.</p>\r\n 
</BODY> 

</HTML>\r\n', _bodyText: ' 
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> \r\n 
<HTML> 

<HEAD> 
    <TITLE>Bad Request 
    </TITLE>\r\n 
    <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"> 
</HEAD>\r\n 

<BODY> 
    <h2>Bad Request - Invalid Hostname</h2>\r\n 
    <hr> 
    <p>HTTP Error 400. The request hostname is invalid.</p>\r\n 
</BODY> 

</HTML>\r\n'} 

私は要求を待っているVisual Studioでブレークポイントを持っているが、私は私の人生のためにこれを動作させることはできません。 フェッチのコードは次のとおりです。

IvはURL_LOGINとしてこれらを試しましたが、いずれも動作しませんでした。 'http://localHost:50968/token'; 'http://192.168.0.2:50968/token';

fetch(URL_LOGIN, { 
     method: 'POST', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
      //application/x-www-form-urlencoded 
     }, 
     body: data 
    }).then((response) => { 
     var jsonResponse = JSON.parse(response._bodyInit); 
     try { 
      AsyncStorage.setItem('token', jsonResponse.access_token); 
      loginUserSuccess(dispatch, response) 
     } catch (error) { 
      console.log(`Error while saving to Async Storage ${error.message}`) 
      loginUserFailed(dispatch, error) 
     } 
    }).catch(response => { 
     loginUserFailed(dispatch, response) 
    }); 

助けがあれば幸いです。

答えて

1

これが見つかりました。他の誰かがこの問題を抱えている場合に備えて。

http://briannoyesblog.azurewebsites.net/2016/03/06/calling-localhost-web-apis-from-visual-studio-android-emulator/

私が見つけた最良の方法は、この

https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti

が私の背後を保存使用することを実際にしました。

+0

を使用したときと同じ応答を得ます。この問題が発生した場合は、人生の節約になります。ツールはKeyotiによってConveyorと呼ばれます。助けてくれてありがとう! – tnyN

0

使用10.0.2.2代わりにあなたのマシンエミュレータにアンドロイドlocalhostを地図上にhttp://10.0.2.2:50968/token

localhostのとではありません。

希望、これはあなたが投稿した応答では

+0

ええ、私はこれを試しました。私はhttp:// :50968 /トークン – tlagreca

0

を助け、私はhttp://の間のスペースで、それはurl: 'http: //192.168.0.2:50968/token'言う気づきました。 URL_LOGINにあなたのURLを間違ってフォーマットしただけではないですか?

関連する問題