基本上我有一个自我托管在PC上的休息网络服务,我想从Windows 7手机上传图像。很多这对我来说都是新的,所以我一直在学习。我的问题是我无法将图像上传到网络服务 下面是我正在使用的代码。
我正在使用wifi连接进行测试,它正常运行。 我正在使用Fiddler,我可以看到来自手机/电脑的请求
使用模拟器我可以让它工作(我得到一个200代码,可以将图像写入磁盘)
当我尝试使用实际设备发布时,我会收到400响应代码。
我能得到的任何帮助都会很棒。我一直在试图解决这个问题。
//webserice code
[ServiceContract]
public interface ItestService
{
[OperationContract, WebInvoke(Method = "POST", UriTemplate = "PostTest/{targetID}")]
string PostTest(string targetID, Stream image);
}
//from service def
public string PostTest(string targetID, System.IO.Stream image)
{
string id = WriteImageToDisk(image, targetID);
return id;
}
//phone code
private void SendImage1()
{
string address = ServiceURI + "/PostTest";
Uri baseAddress = new Uri(address);
var req = HttpWebRequest.Create(baseAddress) as HttpWebRequest;
req.Method = "POST";
req.ContentType = "image/jpeg";
req.BeginGetRequestStream(SendImagePost_Callback, req);
}
private void SendImagePost_Callback(IAsyncResult result)
{
try
{
var req = result.AsyncState as HttpWebRequest;
using (var strm = req.EndGetRequestStream(result))
{
var bytesToWrite = RawContent();
strm.Write(bytesToWrite, 0, bytesToWrite.Length);
strm.Flush();
}
req.BeginGetResponse(SendImageResponce_Callback, req);
}
catch (Exception ex)
{
DisplayMessage(this.txtError, ex.Message);
}
}
private void SendImageResponce_Callback(IAsyncResult result)
{
try
{
var req = result.AsyncState as HttpWebRequest;
var strm = resp.GetResponseStream();
var reader = new StreamReader(strm);
DataContractSerializer ser = new DataContractSerializer(typeof(string));
string id = ser.ReadObject(strm).ToString();
DisplayMessage(this.txtAction, id);
}
catch (Exception ex)
{
DisplayMessage(this.txtError, ex.Message);
}
}
答案 0 :(得分:0)
听起来您需要解决连接问题。也许尝试通过IP访问本地服务,并检查没有防火墙拦截。