Обратите внимание, что есть случаи, когда вы определили свой собственный пользовательский класс и хотите сохранить атрибуты, тогда вы должны использовать copy.copy()
или copy.deepcopy()
, а не альтернативы, например, в Python 3:
import copy
class MyList(list):
pass
lst = MyList([1,2,3])
lst.name = 'custom list'
d = {
'original': lst,
'slicecopy' : lst[:],
'lstcopy' : lst.copy(),
'copycopy': copy.copy(lst),
'deepcopy': copy.deepcopy(lst)
}
for k,v in d.items():
print('lst: {}'.format(k), end=', ')
try:
name = v.name
except AttributeError:
name = 'NA'
print('name: {}'.format(name))
Выходы:
lst: original, name: custom list
lst: slicecopy, name: NA
lst: lstcopy, name: NA
lst: copycopy, name: custom list
lst: deepcopy, name: custom list
Попробуйте обновить код следующим образом:
using (var client = new HttpClient())
{
var myContent = JsonConvert.SerializeObject(data);
var endpoint = "http://localhost:55042/api/Login";
var response = await client.PostAsync(endpoint, new StringContent(myContent, Encoding.UTF8,"application/json"));
}
Я использовал HttpWebRequest
вместо HttpClient
, было еще несколько проблем, но в конце концов все выяснилось. Как я решил продолжить и следующая проблема, которая уже решена
Заголовок Content-Type
находится в Request.Content.Headers
. Вы можете использовать текущий код для получения значений заголовков или проверить, что свойство Request.Content.Headers.ContentType
равно null
,
//note added Content
if (!Request.Content.Headers.TryGetValues("Content-Type", out customJsonInputString))
return new HttpResponseMessage(HttpStatusCode.BadRequest);
или
if (Request.Content.Headers.ContentType == null)
return new HttpResponseMessage(HttpStatusCode.BadRequest);
ContentType
, равно null
Заголовок Content-Type
установлен, но недействителен.