需要帮助将Windows Phone 7图像上传到webservice

时间:2011-01-19 00:32:41

标签: web-services image post windows-phone-7 upload

基本上我有一个自我托管在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);
    }
 }

1 个答案:

答案 0 :(得分:0)

听起来您需要解决连接问题。也许尝试通过IP访问本地服务,并检查没有防火墙拦截。