【发布时间】:2018-04-25 15:35:17
【问题描述】:
我不想将数据从我的一个 asp.net 应用程序发送到另一个。我正在尝试使用 HttpClient 来实现。
我的第一个应用程序:
public class PostVacanciesController : Controller
{
public myEntity db = new myEntity();
public const string sendAppURL = "http://localhost:51394/SecondApp/sendData";
public ActionResult PostTest()
{
try
{
PostData dataPost = new PostData();
// Some code to get PostData from database
var myContent = JsonConvert.SerializeObject(dataPost);
var buffer = System.Text.Encoding.UTF8.GetBytes(myContent);
var byteContent = new ByteArrayContent(buffer);
byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(sendAppURL);
var result = client.PostAsync("", byteContent).Result;
return new HttpStatusCodeResult(HttpStatusCode.OK);
} catch(Exception any)
{
return new HttpStatusCodeResult(HttpStatusCode.InternalServerError);
}
}
}
我的 PostData 模型:
public class PostData
{
public int PropertyID { get; set; }
public List<int> Units { get; set; } = null;
}
这是我的第二个应用程序,我尝试获取数据
public class SecondAppController : Controller
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
[System.Web.Http.HttpPost]
public ActionResult sendData(FeedData receiveData)
{
// receiveData variable is wrong.
// It is showing PropertyID = 0 and Units = null
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
}
我的 FeedData 模型:
public class FeedData
{
public int PropertyID { get; set; }
public List<int> Units { get; set; } = null;
}
有谁知道它为什么不发送数据?如果我在调用第二个 App 之前创建一个断点,我可以看到它有数据要发送。
谢谢
【问题讨论】:
-
旁注,为什么将
List<int>初始化为null?这是多余的,因为null是所有对象的默认值。 -
为什么使用
ByteArrayContent而不是StringContent? -
伙计们...我开始使用 asp.net,所以我的代码可能不正确。但是,我没有收到任何错误,只是没有发送数据
-
@MaxBoy 确认您在两个项目中使用的 asp.net mvc 版本
标签: asp.net httpclient