//HTTPWebRequest
var request = (HttpWebRequest) WebRequest.Create("http://test/pinstore/" + url);
request.ContentType = "application/json";
request.Method = "POST";
//Generate Request
string requestString =
$"version={productRequest.version}&signature={productRequest.signature}&ApplicationCode={productRequest.ApplicationCode}";
using (var streamWriter = new StreamWriter(await request.GetRequestStreamAsync()))
{
streamWriter.Write(requestString);
}
HttpWebResponse httpResponse = (HttpWebResponse) (await request.GetResponseAsync());
string json;
using (Stream responseStream = httpResponse.GetResponseStream())
{
json = new StreamReader(responseStream).ReadToEnd();
}
response = new HttpResponseMessage
{
StatusCode = System.Net.HttpStatusCode.OK,
Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"),
};
return response;
Not directly no. Kinda defeats the purpose of using a DB mapper. No?I would like to know if I can convert my entity into this format?
//HTTPWebRequest
var request = (HttpWebRequest) WebRequest.Create("http://qa-api.mol.com/pinstore/" + url);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
var keyValueContent = productRequest.ToKeyValue();
var formUrlEncodedContent = new FormUrlEncodedContent(keyValueContent);
var urlEncodedString = await formUrlEncodedContent.ReadAsStringAsync();
using (var streamWriter = new StreamWriter(await request.GetRequestStreamAsync()))
{
streamWriter.Write(urlEncodedString);
}
HttpWebResponse httpResponse = (HttpWebResponse) (await request.GetResponseAsync());
string json;
using (Stream responseStream = httpResponse.GetResponseStream())
{
json = new StreamReader(responseStream).ReadToEnd();
}
return response;
public static IDictionary<string, string> ToKeyValues(this object metaToken)
{
if (metaToken == null)
{
return null;
}
JToken token = metaToken as JToken;
if (token == null)
{
return ToKeyValues(JObject.FromObject(metaToken));
}
if (token.HasValues)
{
var contentData = new Dictionary<string, string>();
foreach (var child in token.Children().ToList())
{
var childContent = child.ToKeyValues();
if (childContent != null)
{
contentData = contentData.Concat(childContent).ToDictionary(k => k.Key, v => v.Value);
}
}
return contentData;
}
var jValue = token as JValue;
if (jValue?.Value == null)
{
return null;
}
var value = jValue?.Type == JTokenType.Date
? jValue?.ToString("o", CultureInfo.InvariantCulture)
: jValue?.ToString(CultureInfo.InvariantCulture);
return new Dictionary<string, string> {{token.Path, value}};
}
response
on line 23, and not really doing anything with the HttpWebResponse
because you just throw away the json
string, you might as well just delete lines 15-22.//HTTPWebRequest
var request = (HttpWebRequest)WebRequest.Create("http://qa-api.mol.com/pinstore/" + url);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
var keyValueContent = gameRequest.ToKeyValue();
var formUrlEncodedContent = new FormUrlEncodedContent(keyValueContent);
var urlEncodedString = await formUrlEncodedContent.ReadAsStringAsync();
using (var streamWriter = new StreamWriter(await request.GetRequestStreamAsync()))
{
streamWriter.Write(urlEncodedString);
}
HttpWebResponse httpResponse = (HttpWebResponse)(await request.GetResponseAsync());
string json;
using (Stream responseStream = httpResponse.GetResponseStream())
{
json = new StreamReader(responseStream).ReadToEnd();
}
response = new HttpResponseMessage
{
StatusCode = System.Net.HttpStatusCode.OK,
Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"),
};
return response;
httpResponse.GetResponseStream()
, so that you can get rid of lines 16-20.//HTTPWebRequest
var request = (HttpWebRequest) WebRequest.Create("http://qa-api.mol.com/pinstore/" + url);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
var keyValueContent = productRequest.ToKeyValue();
var formUrlEncodedContent = new FormUrlEncodedContent(keyValueContent);
var urlEncodedString = await formUrlEncodedContent.ReadAsStringAsync();
using (var streamWriter = new StreamWriter(await request.GetRequestStreamAsync()))
{
streamWriter.Write(urlEncodedString);
}
HttpWebResponse httpResponse = (HttpWebResponse) (await request.GetResponseAsync());
response = new HttpResponseMessage
{
StatusCode = httpResponse.StatusCode,
Content = new StreamContent(httpResponse.GetResponseStream()),
};
return response;