MNetwork Extends

MNetExt Framework 에 대한 필수 API 를 정의

NetExt API

확장된 네크워크 관련된 기능들을 제공

HTTP 파일 업로드

M.net.http.upload(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – 리소스 업데이트를 위한 설정 정보

  • setting.url (String) – 파일을 업로드 하기 위한 url

  • setting.headers (Object) – http header 정보

  • setting.parameters (Object) – 업로드 파라메터 정보

  • setting.body (Array) – multipart body 정보

  • setting.encoding (String) – 인코딩

  • setting.indicator (Bool) – 인디케이터 여부

  • setting.finish (Function) – 파일 업로드 완료

  • setting.timeout (Int) – 타입 아웃 (milliseconds)

M.net.http.finish(statusCode, header, body)
Arguments
  • statusCode (String) – 실행 결과 코드

  • header (String) – 응답 헤더 정보

  • body (String) – 응답 바디 정보

Arguments
  • setting.progress (Function) – 파일 업로드 프로그래스

progress(total, current, remaining, percentage)
Arguments
  • total (String) – 업로드 파일 사이즈

  • current (String) – 업로드된 파일 사이즈

  • remaining (String) – 남은 파일 사이즈

  • percentage (String) – 진행률 퍼센트

  • Http multipart 파일 업로드를 한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • header = headers

  • param = parameters

  • params = parameters

  • onprogress = progress

  • onfinish = finish

  • callback = finish

Example:

M.net.http.upload({
    url: "http://lab.morpheus.kr/api/test/file/upload",
    header: {},
    params: {},
    body: [
        { content: "파일업로드", type: "TEXT" },
        { name: "imgs", content: "test.zip", type: "FILE" },
        { name: "imgs", content: "test/test1.txt", type: "FILE" },
        { name: "imgs", content: "test/test2.txt", type: "FILE" }
    ],
    encoding : "UTF-8",
    finish : function(status, header, body, setting) {
        console.log(status);
    },
    progress : function(total, current) {
        console.log(total, current);
    }
});
M.media.picker({
  mode: "SINGLE",
  media: "PHOTO",
  column: 3,
  callback: function( status, result ) {

    var fileList = [], fileCont = {};
    fileCont.name = 'file';
    fileCont.content = ( M.navigator.os('android') ) ? result.fullpath : result.path; ;
    fileCont.type = 'FILE';
    fileList.push(fileCont);
    M.net.http.upload({
      url: "http://210.104.181.170:8280/board/attach",
      header: {},
      params: {index : "3"},
      body: fileList,
      encoding : "UTF-8",
      finish : function(code, header, body, status, error) {
        if (status == 'SUCCESS') {
            M.pop.alert( status + " / " + header + body );
        }
        else
        {
            M.pop.alert( status + " / " + error );
        }
     }
   });
  }
});
M.media.picker({
    media: "PHOTO",
    choice: "MULTI"
}, function(status, result) {
        M.tool.log(status, result);
    //alert( status + ", " + JSON.stringify(result) );

    if ( status === "SUCCESS" ) {
        M.net.http.upload({
            url: "http://210.104.181.170:8280/board/attach",
            header: {},
            params: {},
            files: result,
            encoding : "UTF-8",
            finish : function(status, header, body, setting) {

            },
            progress : function(total, current) {

            }
        });
    }
});

HTTP 파일 다운로드

M.net.http.download(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – 파일 다운로드를 위한 설정 정보

  • setting.url (String) – 다운로드 파일 url

  • setting.headers (Object) – http header 정보

  • setting.parameters (Object) – 다운로드 파라메터 정보

  • setting.method (String) – 전송 방식 (GET, PUT, POST, DELETE)

  • setting.directory (String) – 다운로드 폴더

  • setting.contentType (String) – 컨텐트 타입

  • setting.timeout (Int) – 타입 아웃 (milliseconds)

  • setting.encoding (String) – 인코딩 타입

  • setting.indicator (Bool) – 인디케이터 여부

  • setting.overwrite (Bool) – 덮어 쓰기 여부

  • setting.finish (Function) – 파일 다운로드 완료

M.net.http.finish(statusCode, header, fileInfo, status, error)
Arguments
  • statusCode (String) – 응답 상태 코드

  • header (String) – 응답 헤더 정보

  • fileInfo (String) – 다운로드 파일 정보

  • status (String) – 다운로드 결과 ( SUCCESS: 성공 코드, FAIL: 실패 코드 )

  • error (String) – 오류시 메세지

Arguments
  • setting.progress (Function) – 파일 업로드 프로그래스

progress(total, current, remaining, percentage)
Arguments
  • total (String) – 다운로드 파일 사이즈

  • current (String) – 다운로드된 파일 사이즈

  • remaining (String) – 남은 파일 사이즈

  • percentage (String) – 진행률 퍼센트

  • web server에 있는 파일을 다운로드 한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • mimetype = contentType

  • dir = directory

  • path = directory

  • header = headers

  • param = parameters

  • params = parameters

  • data = parameters

  • onprogress = progress

  • onfinish = finish

  • callback = finish

Example:

M.net.http.download({
    url: 'https://s3-ap-northeast-1.amazonaws.com/morpheus-storage/lab/documents/morpheus_2.0_introduce_v1.3.modified.pdf',
    indicator: true,
    overwrite: true,
        progress: function(total, current) {
                console.log(total, current);
        },
        finish: function( statusCode, header, fileInfo, status, error ) {
                console.log( statusCode, header, fileInfo, status, error );

                if (status == "SUCCESS") {
                    console.log( JSON.stringify( fileInfo ) );
                }
                else {
                    console.log( JSON.stringify( arguments ) );
                }
        }
});

FTP 파일 리스트

M.net.ftp.list(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – ftp 파일 리스트를 가져오기 위한 설정 정보

  • setting.url (String) – ftp 접속을 위한 url

  • setting.port (String) – ftp 접속을 위한 port

  • setting.acccount (Object) – account 정보

  • setting.acccount.username (String) – 접속 id

  • setting.acccount.password (String) – password

  • setting.target (Object) – 접속할 path

  • setting.target.serverpath (String) – 접근할 path

  • setting.finish (Function) – 리스트 호출 완료

M.net.ftp.finish(resultCode, listInfo, setting)
Arguments
  • resultCode (String) – 실행 결과 코드

  • listInfo (Object) – 가져온 file list 정보

  • setting (Object) – 설정값

Arguments
  • setting.progress (Function) – 파일 정보 가져오기 프로그래스

  • ftp 통신을 통해, 파일 리스트를 가져온다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • param = parameters

  • params = parameters

  • onprogress = progress

  • onfinish = finish

  • callback = finish

Example:

M.net.ftp.list('host', {
        port : '21',
        account : {
                username : '',
                password : '',
        },
        target : {
                serverpath : ''
        },
        finish : function(resultCode, listInfo, setting) {
                M.tool.log( resultCode, listInfo );
                alert( resultCode + ", " + JSON.stringify(listInfo) );
        }
});

FTP 파일 업로드

M.net.ftp.upload(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – ftp로 파일을 업로드 하기 위한 설정 정보

  • setting.url (String) – ftp 접속을 위한 url

  • setting.port (String) – ftp 접속을 위한 port

  • setting.acccount (Object) – account 정보

  • setting.acccount.username (String) – 접속 id

  • setting.acccount.password (String) – password

  • setting.target (Object) – 접속할 path

  • setting.target.localpath (String) – 단말기의 local path(upload할 file path)

  • setting.target.serverpath (String) – upload path

  • setting.finish (Function) – 파일 업로드 완료

M.net.ftp.finish(resultCode, resultMessage, setting)
Arguments
  • resultCode (String) – 실행 결과 코드

  • resultMessage (Object) – 실행 결과 메시지

  • setting (Object) – 설정값

Arguments
  • setting.progress (Function) – 파일 업로드 프로그래스

  • ftp 통신을 통해, 파일을 업로드 한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • param = parameters

  • params = parameters

  • onprogress = progress

  • onfinish = finish

  • callback = finish

Example:

M.net.ftp.upload('host', {
        port : '21',
        account : {
                username : 'anonymous',
                password : '',
        },
        target : {
                localpath : 'localpath',
                serverfiles : [ 'server_file0', 'server_file1', ],
        },
        finish : function(resultCode, resultMessage, setting) {
                if (resultCode == 'SUCCESS') {
                        // TODO : success handle code here
                } else {
                        // TODO : fail handle code here
                }
        }
});

FTP 파일 다운로드

M.net.ftp.download(setting)

Changed in version 2.0.0.

Arguments
  • setting (Object) – ftp로 파일을 download 하기 위한 설정 정보

  • setting.url (String) – ftp 접속을 위한 url

  • setting.port (String) – ftp 접속을 위한 port

  • setting.acccount (Object) – account 정보

  • setting.acccount.username (String) – 접속 id

  • setting.acccount.password (String) – password

  • setting.target (Object) – 접속할 path

  • setting.target.localpath (String) – 단말기의 local path(download 할 file path)

  • setting.target.serverpath (String) – download path

  • setting.finish (Function) – 파일 download 완료

M.net.ftp.finish(resultCode, resultMessage, setting)
Arguments
  • resultCode (String) – 실행 결과 코드

  • resultMessage (Object) – 실행 결과 메시지

  • setting (Object) – 설정값

Arguments
  • setting.progress (Function) – 파일 download 프로그래스

  • ftp 통신을 통해, 파일을 download 한다.

Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
  • param = parameters

  • params = parameters

  • onprogress = progress

  • onfinish = finish

  • callback = finish

Example:

M.net.ftp.download('host', {
        port : '21',
        account : {
                username : 'anonymous',
                password : '',
        },
        target : {
                localpath : 'localpath',
                serverfiles : [ 'server_file0', 'server_file1', ],
        },
        finish : function(resultCode, resultMessage, setting) {
                if (resultCode == 'SUCCESS') {
                        // TODO : success handle code here
                } else {
                        // TODO : fail handle code here
                }
        }
});

통신 에러 코드(for Android)

CODE

Description

9994

네트워크 URL Error

9995

네트워크 통신 중 취소처리

9996

네트워크 연결 에러

9997

통신중 에러 / 통신 내부 에러

9998

네트워크 응답시간 초과 에러

9999

서버에서 리턴된 에러

404

Not found(네트워크 연결 실패)