2013-04-11 1 views
1

Я хотел бы разместить на моем сервере один файл и объект json. Проводка в качестве параметра отлично работает, так что это работает:Можно ли отправить файл и json body с помощью RestSharp?

request.AddFile ("MyPic", organisation.Pic, "Pic.png", "image/png"); 
request.AddParameter ("name", "test name"); 

Но если мой объект JSON является то, что с вложенной структурой, как:

{organisation:{ 
    'name':'test', 
    'address':{ 
    'line1':'foo', 
    'line2':'foo2' 
    } 
}} 

Как разместить это, сохраняя при этом структуру JSon.

Если установить его в теле содержимого т.е. .:

request.AddBody (organisation); 

содержание опубликовано, но файл не отвечал.

Можно ли разместить и тело json и файл?

ответ

1

№ Когда вы используете AddFile, вы фактически добавляете тело к вашему запросу. Вы не можете отправить запрос с двумя органами.

+0

Спасибо Антонио, я столкнулся с обходным решением моей проблемы, что должно было сериализовать мой JSON и опубликовать его как параметр. Это означает, что у меня есть только один запрос. Я разместил обновление ниже. –

+0

Благодарим вас за ответ, поэтому вам нужно использовать другой запрос для загрузки файла? – OPV

+0

Можете ли вы поделиться решением? – OPV

2

Итак, я выяснил обходное решение, которое соответствует моим целям. То, что я искал, - это сделать одно сообщение как файла, так и связанных метаданных. В этом случае я сериализую объект в строку JSON, устанавливая его как мой параметр и де-сериализуя на сервере. Это работает в моем случае, но я согласен, что это может быть не идеальным для других. Думал, что это может помочь кому-то.

0

Фактически это будет возможно очень скоро. В библиотеке RestSharp есть запрос на перенос, который обращается к этому. Я начал поддерживать проект и слияние его с мастером на следующий день или около того. Как только будет достаточно материала, я выпущу новый пакет NuGet.