當我嘗試從android模擬器連接到本地主機上的web服務時,出現'連接被拒絕'或'請求不好'。我加入的端口號的防火牆允許連接,我試圖給here建議修改對ApplicationHost.config從xamarin Vs2015 android模擬器連接本地web服務
無論是Web服務和仿真器是相同的(視窗10)的PC上運行。在服務器的web.config我已經下「system.webserver」以下:
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST" />
</customHeaders>
</httpProtocol>
AFAIK模擬器可以找到 Web服務器(我沒有得到一個「未找到」的錯誤),但服務器拒絕連接。
using (WebClient client = new WebClient())
{
string json = ......;
client.Headers[HttpRequestHeader.ContentType] = "application/json";
// I have also tried "application/x-www-form-urlencoded";
string result = client.UploadString(UrlBase.urlBase + "SaveLocation", json);
如果 'UrlBase' 是http://192.168.1.73:60080/Service1.svc/,我得到 '錯誤的請求',這我知道,可導致嚴重的JSON格式。
如果'UrlBase'是遠程服務器,則連接起作用(所以我知道json格式是正確的)。相同的更新dll在遠程和本地服務器上運行。
如果「UrlBase」是http://localhost:60080/Service1.svc/,我得到異常「連接被拒絕」
請出示所使用的代碼和使用地址。 – greenapps
還有什麼不清楚:模擬器和web服務運行在同一臺電腦上嗎?如果你有三臺電腦/筆記本電腦,那麼他們都是他們自己的本地主機。所以如果你談論localhost,那麼我們怎麼知道你的意思? – greenapps
模擬器是它自己的虛擬機,並有它自己的IP,因此localhost引用了模擬器。如果要連接到運行仿真器的PC,請使用它的IP或FQDN。 – Jason